何时使用文件上传控件上载文件



如果在页面上放置 asp:FileUpload 控件,请浏览到某个文件,然后提交该窗体。 提交表单时,文件是否已上传到服务器?

我已经看到了很多文件上传的例子,其中文件被传递到文件流并上传。

我不明白什么时候发生了什么。单击"上传"按钮后,代码将在服务器上执行。所以文件(文件名?文件路径?)由FileUpload控件使用FileUpload.PostedFile(或httpFileCollection)提供...这是在提交表单时上传的吗?服务器如何访问客户端计算机上的文件,以便可以使用文件流上载该文件。

我不明白。我一直在读到文件流以块的形式传递(可以传递)数据 - 帮助绕过文件大小等限制,但是,正如我上面所说,文件何时/如何上传到服务器?

<asp:FileUpload>控件呈现一个<input type="file">,并将表单的内容类型设置为 multipart/form-data

当浏览器提交带有<input type="file"><form>时,它会将整个文件发送到HTTP POST中的服务器(这是内容类型的一部分)。

单击上载时,将提交 html 表单,并向服务器发送发布请求。

它实际上不会向您发送可以直接存储的某种"文件"对象,只是以字节为单位的文件内容和一些元数据,例如文件名。

在服务器上,您必须处理此请求:您必须将字节读入实际文件才能正确存储它。

在您提到的示例中,这就是 HttpPostedFile 的用途。

最新更新