从浏览器上传多个文件的最佳方法

我正在开发Web应用程序。用户可以在一个地方使用HTTP协议上传文件。在经典HTML文件上传控件和Java小程序之间可以选择上传文件。

经典的HTML文件上传效果不好,因为您一次只能选择一个文件,并且在实际上传过程中很难获得任何进度指示(我最终使用计时器刷新了进度指示器,并从服务器通过AJAX调用)。优点:始终有效。

随着Java小程序,我可以做更多的事情:选择多个文件一次(甚至一个文件夹),压缩文件,得到一个真正的进度条,拖放文件的小程序,等等。

但也有少数缺点:

  • 要使其在Mac Safari和Mac Firefox上正常运行是一场噩梦(感谢Liveconnect)
  • 用户界面并不完全是本机用户界面,有人注意到
  • applet的响应速度不够理想(可能是我的错,但对我而言一切正常)
  • UrlConnectionHTTPS 的Java 类中存在错误,因此我使用Apache通用HTTP客户端进行实际的HTTP上传。这是一个很大的软件包,并且会减慢.jar文件的下载速度
  • Apache通用HTTP客户端有时难以通过代理
  • Java运行时很大

我一直在维护此Java applet一段时间,但现在我已经受够了所有缺点,并考虑编写/购买一个全新的组件来上传这些文件。

如果您有以下要求:

  • 通过HTTP或HTTPS从浏览器轻松上传多个文件
  • 压缩文件以减少上传时间
  • 上载应能在任何平台上使用本机UI
  • 必须能够上传大文件,至少2GB
  • 您对技术有全面的了解


编辑:

  • 将文件拖放到组件上将是一个不错的选择。
  • 看起来有很多与Flash Player的错误相关的问题(swfupload已知问题)。正确的Mac支持和通过带有身份验证的代理上传是我不能没有的选择。这可能会排除所有基于Flash的选项:-(。
  • 我排除所有仅HTML / JavaScript的选项,因为使用经典HTML控件一次不能选择多个文件。要在一个文件夹中选择多个文件时,单击n次“浏览”按钮是很痛苦的。

回答:

我使用swfupload进行了一些测试,并且我以前有使用Java的经验,我的结论是,

:在上传大文件时,您总是会遇到错误,通过代理,使用ssl等…

  • 我认为Flash上​​载程序(la swfupload)非常轻巧,不需要用户授权,并且具有本机界面,这真的很酷
  • 一个Java上传器需要授权,但是您可以对用户选择的文件进行任何操作(如果需要,也可以压缩),并且拖放操作效果很好。尽管要为一些史诗般的错误调试做好准备。
  • 只要我希望这是真正的答案,我就不会改变使用Silverlight的方法,尽管该技术还很年轻,所以…如果有机会摆弄我,我会编辑这篇文章。与Silverlight

感谢所有的答案 !!

以上是 从浏览器上传多个文件的最佳方法 的全部内容, 来源链接: utcz.com/qa/430370.html

回到顶部