何时使用FileUpload控件上传文件?

时间:2012-09-28 17:27:21

标签: asp.net .net file-upload

如果在页面上放置asp:FileUpload控件,请浏览到文件,然后提交表单。是您提交表单时上传到服务器的文件吗?

我已经看到大量的文件上传示例,其中文件被传递到文件流并上传。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

单击上传后,将提交html表单并将发布请求发送到服务器。

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

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

在你提到的例子中,这就是HttpPostedFile的用途。