2008-10-31 48 views
15

我需要一个简单的方法来允许用户一次上传多个文件(即我需要允许用户上传文件夹)。我不希望把压缩的负担放在用户身上。将文件夹上传到网站的最佳方法是什么?

如果可能,我宁愿避免使用Flash或变体。如果可以,我正在寻找一个直接的javascript/HTML解决方案。请注意,这排除了答案:What is the best client side browser library to upload multiple files over http?

+0

最好的方法:FTP – 2008-10-31 17:24:20

+0

Diodeus:你应该发布这个答案。 – eyelidlessness 2008-10-31 17:27:33

回答

24

您将无法使用HTML和Javascript来做到这一点。我建议尝试Fancy Upload,一个MooTools插件多文件上传。它使用JavaScript和Flash的混合,但优雅地降级。它适用于包括IE6在内的所有主流浏览器,并且还有一个兼容Flash 10的版本可供下载(尽管演示还未更新)。


更新(2012年11月26日):

多文件上传是可能的valumsblueimp文件上传。

对于递归目录上传,您的最佳解决方案是使用Chrome 11's new folder upload API。如果您使用供应商前缀,它似乎也适用于Firefox。

3

如果你避免闪存(大概的Java?)的JS /只支持HTML的解决方案仍然需要单个文件input S,但本质上您安装onchange事件您input,添加新input到DOM时一个文件被选中。

+0

是否可以获取特定文件夹中的文件列表,并将其自动输入到输入控件中? – torial 2008-10-31 17:29:29

+0

我回答自己的问题从评论:http://www.codeproject.com/KB/scripting/search_in_files.aspx – torial 2008-10-31 17:31:07

1

这不是纯粹的js/html解决方案。正如EndangeredMassa指出的那样,这是不可能的。实际上,这个想法是一个仅限IE/Windows的解决方案。我不推荐它,但它可以工作。

因此,所有免责声明抛开......

多年,几个雇主前,我们用来做一些客户端的东西,实例化FileSystemObject对象。它会遍历每个文件,并一次将它们传递给服务器。不记得我们是如何做到的:o(

无论如何,这通常意味着客户端需要将网站添加到受信任网站列表中,并为受信任网站提供一系列权限关闭(出于很好的理由)。东西像初始化和脚本ActiveX控件没有标记为安全的能力。那种事。

我知道这不是一个完美的答案,但它可以指向你在正确的方向。

2

FTP?如果NEC的,包裹在的Java Applet,ActiveX或任何你想要的。

如果不是,虽然你不想使用闪存,但SWFUpload非常酷,你可能想重新考虑它是一个不错的选择。

2

多个文件上传是可能的valumsblueimp文件上传纯JS溶液。

对于递归目录上传,你的选择是比较有限:

  • 你最好的解决方案是使用Chrome 11's new folder upload API。如果您使用供应商前缀,它似乎也适用于Firefox。

  • 这也是可能的跨浏览器与Java applet。但是安装了JRE乡亲%已经得到了相当低的这些天(< 70%

相关问题