在asp.net中将文件从客户端浏览器发送到服务器的方法有哪些?

时间:2010-12-24 15:10:47

标签: javascript asp.net html

我正在寻找从浏览器向服务器发送文件的可能方法。 一种显而易见的方法是使用带有enctype ='multipart / form-data'的表单。 我想知道是否还有其他方法。

我问你这个问题的原因是这个文件上传者:http://aspnetajax.componentart.com/control-specific/upload/features/core_features/WebForm1.aspx

它不是基于闪存的,但它以一种方式发送文件,它为您提供了一个进度条,但是当您发送带有enctype ='multipart / form-data'的表单的文件时,整个文件将被发送到服务器,因此您无法实际显示上传过程的进度条。

2 个答案:

答案 0 :(得分:1)

您实际上可以获得常规文件上传的进度条,但由于服务器一次只能为每个用户处理一个请求,因此您必须使用无会话请求来询问服务器上载进度。 / p>

因此,在服务器上,您需要设置一种不使用用户会话来识别上载的方法,以及在不同线程之间传递上载状态的方法。这使您可以设置无会话页面,该页面可以获取特定上载的状态并将其返回。

在上传页面中,您通过上传发送请求,然后开始按间隔发送无会话页面请求,并显示上传状态。

答案 1 :(得分:0)

这是一个堆栈溢出问题,其中包含一些有用的链接。

Upload large files in .NET

我相信你可以编写自己的http模块来实现上传进度。这是一个示例链接

http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/

希望这会有所帮助。

鲍勃