我需要一个简单的方法来允许用户一次上传多个文件(即我需要允许用户上传文件夹)。我不希望把压缩的负担放在用户身上。将文件夹上传到网站的最佳方法是什么?
如果可能,我宁愿避免使用Flash或变体。如果可以,我正在寻找一个直接的javascript/HTML解决方案。请注意,这排除了答案:What is the best client side browser library to upload multiple files over http?。
我需要一个简单的方法来允许用户一次上传多个文件(即我需要允许用户上传文件夹)。我不希望把压缩的负担放在用户身上。将文件夹上传到网站的最佳方法是什么?
如果可能,我宁愿避免使用Flash或变体。如果可以,我正在寻找一个直接的javascript/HTML解决方案。请注意,这排除了答案:What is the best client side browser library to upload multiple files over http?。
您将无法使用HTML和Javascript来做到这一点。我建议尝试Fancy Upload,一个MooTools插件多文件上传。它使用JavaScript和Flash的混合,但优雅地降级。它适用于包括IE6在内的所有主流浏览器,并且还有一个兼容Flash 10的版本可供下载(尽管演示还未更新)。
更新(2012年11月26日):
对于递归目录上传,您的最佳解决方案是使用Chrome 11's new folder upload API。如果您使用供应商前缀,它似乎也适用于Firefox。
这不是纯粹的js/html解决方案。正如EndangeredMassa指出的那样,这是不可能的。实际上,这个想法是一个仅限IE/Windows的解决方案。我不推荐它,但它可以工作。
因此,所有免责声明抛开......
多年,几个雇主前,我们用来做一些客户端的东西,实例化FileSystemObject对象。它会遍历每个文件,并一次将它们传递给服务器。不记得我们是如何做到的:o(
无论如何,这通常意味着客户端需要将网站添加到受信任网站列表中,并为受信任网站提供一系列权限关闭(出于很好的理由)。东西像初始化和脚本ActiveX控件没有标记为安全的能力。那种事。
我知道这不是一个完美的答案,但它可以指向你在正确的方向。
FTP?如果NEC的,包裹在的Java Applet,ActiveX或任何你想要的。
如果不是,虽然你不想使用闪存,但SWFUpload非常酷,你可能想重新考虑它是一个不错的选择。
Here是使用ExtJS的库
多个文件上传是可能的valums或blueimp文件上传纯JS溶液。
对于递归目录上传,你的选择是比较有限:
你最好的解决方案是使用Chrome 11's new folder upload API。如果您使用供应商前缀,它似乎也适用于Firefox。
这也是可能的跨浏览器与Java applet。但是安装了JRE乡亲%已经得到了相当低的这些天(< 70%)
与Firefox 42和边缘已经实施了新的directory upload proposal我们终于能够做到跨浏览器的目录上传。这些API令人讨厌,你可能想看看我的包装,uppie。
最好的方法:FTP – 2008-10-31 17:24:20
Diodeus:你应该发布这个答案。 – eyelidlessness 2008-10-31 17:27:33