在.NET中上传大文件

Aus*_*tin 11 asp.net ajax file-upload httphandler large-files

我已经做了很多研究,找到了一个.NET上传组件,我可以用来上传大文件,有一个进度条,可以恢复上传大文件.我遇到过一些组件,比如AjaxUploader,SlickUploadPowUpload,仅举几例.这些选项中的每一个都需要花钱,只有PowUpload才能进行可恢复的上传,但它使用的是java applet.我愿意支付一个可以很好地完成这些工作的组件,但如果我能自己编写那些最好的组件.

我有两个问题:

  1. 是否可以在不使用flash/java/Silverlight的情况下在客户端上恢复文件上传?
  2. 有没有人有一些代码或链接到文章解释如何编写允许流上传和ajax进度条的.NET HTTPHandler?

谢谢
奥斯汀

[编辑]

我意识到我确实需要能够为我的项目进行可恢复的文件上传,对组件的任何建议都能做到吗?

Ori*_*rds 6

1)是否可以在不使用flash/java/Silverlight的情况下在客户端上恢复文件上传?

不是.实际的HTTP协议本身不支持部分上传的恢复,所以即使您使用了flash或silverlight,您仍然需要在服务器上使用其他类似FTP的东西.
我在过去通过在C#中编写自定义客户端应用程序来"解决"这个问题,该应用程序将文件分解成小块(2meg),分别传输,然后服务器将它们全部组合在一起.

2)有没有人有一些代码或链接到文章解释如何编写允许流上传和ajax进度条的.NET HTTPHandler?

虽然这并没有解决'恢复'问题,但我在客户端使用了SWFUpload,它运行得非常出色.它提供了一个智能文件浏览器(您可以在其中提示用户只有jpeg文件等)并上传进度跟踪,所有这些都无需修改您的服务器.


Kon*_*Kon 5

无法使用标准 HTML 文件输入控件恢复上传,因为整个文件都随 HTTP 请求一起提交。

我过去使用过NeatUpload,它为您提供了一个进度条。它受 LGPL 许可,因此您无需为此付费,而且它是开源的。