ASP.NET本质论
上QQ阅读APP看书,第一时间看更新

2.5.3 文件上传的解决方案

在ASP.NET中,浏览器的请求数据到达 ASP.NET网站后,被包装为一个内部的对象HttpWorkerRequest,从客户端发送到服务器的数据在内部通过这个对象来读取,HttpRequest提供了针对请求数据的包装,从ASP.NET 2.0开始,在上传文件过程中,上传的数据通过HTTPRawUploadedContent对象来表示,这是HttpRequest的一个内部成员,可以通过HttpRequest还没有读取上传文件的情况下,接管ASP.NET对请求参数的读取过程,自定义针对文件上传的处理,实现上传文件的管理。

对于其他的Post数据,可以通过反射来构建一个模拟的HttpRawUploadedContent对象实例,提供给HttpRequest使用,保证在后继的处理中正常获取表单数据。