0

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

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

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

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

4

2 回答 2

1

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

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

于 2012-09-28T17:34:32.620 回答
1

当您单击上传时,将提交 html 表单并向服务器发送一个 post 请求。

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

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

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

于 2012-09-28T22:37:05.663 回答