流式上传文件到服务器磁盘,在ASP.NET中流式传输大文件上传

您可以以完全自定义的方式处理上传,而无需使用缓冲

HttpRequest.GetBufferlessInputStream方法。基本上,您可以访问原始的传入数据,并随意随意使用它。

我刚刚创建了一个将原始请求内容保存到文件的小样本:

>创建处理程序:

public class UploadHandler : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

using (var stream = context.Request.GetBufferlessInputStream())

using (var fileStream = File.Create("c:\\tempfile.txt"))

{

stream.CopyTo(fileStream);

}

}

public bool IsReusable { get { return true; } }

}

>在Web.config中注册:

path="/upload"

type="UploadHandler"

resourceType="Unspecified"/>

>创建一个带有表单的页面:

&ltinput type="file" name="aa" id="aa"/>