2008-11-12 55 views
11

我已经做了一些研究,以找到一个.NET上传组件,我可以使用它上传大文件,有一个进度条,并且可以恢复上传大文件。我遇到了一些组件,如AjaxUploader,SlickUploadPowUpload等等。这些选项中的每一个都需要花费金钱,只有PowUpload才能完成可恢复的上传,但它可以通过Java小程序完成。我愿意为那些做得好的组件付费,但是如果我能自己写这个会是最好的。在.NET中上传大文件

我有两个问题:

  1. 是否有可能恢复在客户端上的文件上传,而无需使用闪光灯/爪哇/ Silverlight的?
  2. 有没有人有一些代码或链接到一篇文章,解释如何编写一个.NET HTTPHandler,将允许流式上传和ajax进度栏?

谢谢
奥斯汀

[编辑]

我意识到我确实需要能够为能够这样做组件我的项目做可恢复的文件上传,有什么建议?

回答

6

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

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

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

尽管这并没有解决'简历'问题,但我在客户端使用了SWFUpload,并且它的工作非常出色。它提供了一个智能文件浏览器(在这里你可以提示用户只有jpeg文件等)并上传进度跟踪,所有这些都不需要修改你的服务器。

+0

你可以创建一个Silverlight客户端来完成与你的C#应用​​程序相同的功能吗?用户选择上传后,将其分解并分别提交这些部分?所以在技术上,Silverilight有可能是对的吗? – TJB 2009-02-23 03:11:01

+1

当然,你可以这样做。困难的部分不是客户端本身,它正在与服务器进行协商以找出之前已上载了多少个2兆字节块,并且跟踪所有这些东西 – 2009-02-23 22:14:53

+0

另一种方法(这也不能解决简历问题问题)是Darren Johnson的IIS上传模块。这将使用进度条上传,无需使用Flash,Java或Silverlight: http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/ – Cocowalla 2009-10-12 08:08:35

4

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

我以前用过NeatUpload,它给你一个进度条。它在LGPL许可下,所以你不需要为它付费,而且它是开源的。

0

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

0

SlickUpload是相当稳固,许多大公司使用它从the site说什么。

0

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