如何使用HTML将文件上载到网站

如何使用HTML将文件上载到网站,html,upload,multipart,Html,Upload,Multipart,我正在开发一个网站,我希望用户能够上传文件到服务器使用网页 服务器端是.NET,但不是ASP.NET。这意味着,我将自己生成html代码,而不是使用ASP.NET,并且直接使用GET字符串和POST流。了解引擎盖下发生的事情是一个很好的练习:D,特别是在现在有了一个框架的情况下 我一直在试图找到有关这方面的信息,但我发现了几种方法,其中一些是javascript(我暂时不想使用的东西)和许多预制控件。我想要的是自己去做,我不在乎是否有一个好的、漂亮的、经过验证的ASP.NET控件。。。我想要的是

我正在开发一个网站,我希望用户能够上传文件到服务器使用网页

服务器端是.NET,但不是ASP.NET。这意味着,我将自己生成html代码,而不是使用ASP.NET,并且直接使用GET字符串和POST流。了解引擎盖下发生的事情是一个很好的练习:D,特别是在现在有了一个框架的情况下

我一直在试图找到有关这方面的信息,但我发现了几种方法,其中一些是javascript(我暂时不想使用的东西)和许多预制控件。我想要的是自己去做,我不在乎是否有一个好的、漂亮的、经过验证的ASP.NET控件。。。我想要的是了解它是如何做到这一点的,以及它的所有含义

干杯

我想应该有你需要的

基本上,您需要一个
,并将表单的编码设置为多部分/表单数据。


<input type="file" name="somename" size="n"> 

你把它放在一个表格里,哈斯塔·拉维斯塔宝贝

您不能使用纯HTML进行文件上传:您需要在服务器端处理上传的文件


如果您想了解上传的文件是如何“在引擎盖下”工作的(请参阅如何在ASP中执行此操作的示例),可以从原始POST数据中解析上传的文件,但您需要某种服务器端语言来执行此操作

在HTML中,您需要一个输入为type=“file”的表单,表单的enctype属性设置为“multipart/form data”,而不是默认的“application/x-www-form-urlencoded”

多部分/表单数据是在中定义的,它的行为将与您迄今为止通过本实验解析的应用程序/x-www-form-urlencoded不同,尽管它非常简单。RFC应该为您提供在ASP.NET中复制HttpRequest.Files属性的工作方式所需的所有知识

作为扩展,请尝试使用POST和PUT(您可能必须更改IIS设置以允许PUT通过)从页面中的XMLHttpRequest或.NET客户端应用程序中的HttpWebRequest发送流,因此,即使在使用所有工具包的情况下,在这方面的工作与您的实验的重叠也将涵盖一些具有实际适用性的知识。另一个扩展是尝试在没有框架帮助的情况下实现这两个方案的双方(有时,这两个方案的服务器端确实很有用)


这项实验值得称道,它应该带来真实的经验来支持你从阅读中学到的东西(尽管这对于任何做网络工作的人来说都是至关重要的,因为阅读将涵盖一些你的实验没有涉及到的情况,并解释你的结果中任何奇怪的地方).

如果你自己构建所有服务器代码,你需要一种服务器端语言,而不是服务器端框架,这正是querant所要做的(事实上,虽然这是一种为实时项目重新设计轮子的疯狂形式,但却是一种非常有教育意义的练习)。@Jon说得好!从理论上讲,你甚至可以自己构建一个小型web服务器——我认为有几个示例项目。但这深入到了处理HTTP协议及其怪癖的过程中。我不想在一千年后做这件事:)但它肯定有很大的教育价值。我自己在1990年代写了一个简单的Web服务器。它效率不高、不完整,或者无论如何,它不能很好地完成这项工作以用于付费项目,但它非常有趣,它教会了我很多我至今仍在使用的深刻的HTTP知识。