Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Http和文件上传-它到底是如何工作的(在幕后)_.net_Html_Http_File Io_Streaming - Fatal编程技术网

.net Http和文件上传-它到底是如何工作的(在幕后)

.net Http和文件上传-它到底是如何工作的(在幕后),.net,html,http,file-io,streaming,.net,Html,Http,File Io,Streaming,好吧,这可能看起来有点像一个noob问题,但我认识的许多Web开发人员都不完全了解这个问题 基本上,如何使用FileUpload控件的Upload事件将文件从网页文件输入框上载到web服务器(例如托管.net站点) 我的理解是,向服务器发送了一条请求流的帖子,然后将其传递回浏览器,并开始将数据流传输到服务器 我的朋友说,他的理解是,浏览器将整个文件编码到post请求中,然后将(大量)post发送到服务器 我认为这种情况不可能发生,因为在服务器收到完整的帖子之前,服务器将无法执行任何操作,此时它还

好吧,这可能看起来有点像一个noob问题,但我认识的许多Web开发人员都不完全了解这个问题

基本上,如何使用FileUpload控件的Upload事件将文件从网页文件输入框上载到web服务器(例如托管.net站点)

我的理解是,向服务器发送了一条请求流的帖子,然后将其传递回浏览器,并开始将数据流传输到服务器

我的朋友说,他的理解是,浏览器将整个文件编码到post请求中,然后将(大量)post发送到服务器

我认为这种情况不可能发生,因为在服务器收到完整的帖子之前,服务器将无法执行任何操作,此时它还不如将文件保存到磁盘上


那么,从浏览器到服务器究竟是如何工作的呢?

我认为你的朋友是对的,文件被编码到发送到服务器的帖子中。如果你真的想知道它到底是如何工作的,试着在Firefox中使用查看实际的post数据

预计到达时间:


AJAX风格通过在隐藏的iframe中执行帖子,然后使用AJAX请求在服务器端检查上传进度来上传您提到的工作。

您的朋友是对的。如果你想要一个AJAX进度条,你必须跳过一些障碍

通常,该技术是将iframe内的上载发布到服务器上的IHttpHandler,IHttpHandler将服务器上的进度存储在服务器范围的字典中,该字典由客户端组成的标识符键入,并包含在AJAX进度请求和上载发布中。这样,当客户机发出AJAX请求时,处理该请求的服务器代码可以从该字典中读取值,以查看服务器已经处理了多少字节的文件POST请求


是的,这很复杂:)

好吧,我的同伴说的话我很确定是对的,但是httphandler必须先收到帖子,然后才能做任何事情?到这个时候,它已经拥有了整个帖子。或者httphandler是否在网络级别工作并截获数据包?您可以进一步解释吗?一些服务器可以在读取头之后但在读取数据之前开始处理请求。我使用的一些框架将请求体作为流提供(除非解析头等)。当然,大多数请求处理程序在请求被完全读取之前都不会返回响应。我不确定在httphandler上调用ProcessRequest()时是否下载了整个帖子,但我找不到任何真正的文档来说明这种或那种方式。这就是我遇到的问题。我认为这是有意义的,但它表明httphandler在网络级别上工作,可以检测部分post的传入数据包?httphandler可能不在“网络级别”上工作,但它们可以在低于标准页面的级别上工作。在普通页面上,在服务器上完全加载帖子之前,事件处理代码不会运行。在IHttpHandler中,您可以在数据到达时对其进行处理,但您会丢失页面生命周期为您提供的所有自动功能。