问题 在.NET中上传大文件


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

我有两个问题:

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

谢谢,
奥斯汀

[编辑]

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


5431
2017-11-12 19:53


起源



答案:


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

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

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

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


6
2017-11-12 20:35



您可以创建一个与C#应用程序完全相同的Silverlight客户端吗?用户选择上传后,将其分解,然后单独提交这些部分?从技术上讲,Silverilight有可能吗? - TJB
当然,你可以做到这一点。困难的部分不是客户端本身,它正在与服务器协商,以找出之前上传了多少2兆的块,并跟踪所有这些东西 - Orion Edwards
另一种选择(也没有解决恢复问题)是Darren Johnson用于IIS的ASP.NET上传模块。这将使用进度条上传,而无需Flash,Java或Silverlight: darrenjohnstone.net/2008/07/15/... - Cocowalla
Darren的网站似乎已关闭,但您仍然可以浏览根目录的文件结构。似乎有FileUpload控件的下载包。 - bgmCoder


答案:


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

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

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

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


6
2017-11-12 20:35



您可以创建一个与C#应用程序完全相同的Silverlight客户端吗?用户选择上传后,将其分解,然后单独提交这些部分?从技术上讲,Silverilight有可能吗? - TJB
当然,你可以做到这一点。困难的部分不是客户端本身,它正在与服务器协商,以找出之前上传了多少2兆的块,并跟踪所有这些东西 - Orion Edwards
另一种选择(也没有解决恢复问题)是Darren Johnson用于IIS的ASP.NET上传模块。这将使用进度条上传,而无需Flash,Java或Silverlight: darrenjohnstone.net/2008/07/15/... - Cocowalla
Darren的网站似乎已关闭,但您仍然可以浏览根目录的文件结构。似乎有FileUpload控件的下载包。 - bgmCoder


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

我用过 NeatUpload 在过去,它给你一个进度条。它是LGPL许可证,因此您无需为此付费且它是开源的。


4
2017-11-12 20:12





没有更多关于简历问题的补充。 我使用(并继续使用)telerik radUpload,我对此非常满意 (它甚至可以用于中等信任模式,这对我来说非常重要)。我遇到的唯一问题(并且无法修复)是上传大于2GB的文件...


0
2017-11-13 16:45



是2MB而不是2GB?如果是这样,那么这是由于web.config中的maxrequestlength设置 - Spongeboy


SlickUpload非常可靠,许多大公司都使用它 网站 说。


0
2018-02-23 02:52





对于您的项目来说,这可能为时已晚,但POW上传现已在其新版本中实施了自动恢复上传。我们即将在我们的网站上实施它。


0
2018-06-18 10:23



好的,谢谢你的更新。 - Austin