我需要一个简单的方法,以允许用户一次上传多个文件(即,我需要让用户上载一个文件夹)。我不想把负担压缩上的用户。

我宁愿避免的闪光或变,如果可能的。 我在寻找一直javascript/HTML的解决方案,如果这是可能的。请注意,这个规则出答复: 什么是最好的客户的侧浏览器库,上载的多个文件通过http?.

有帮助吗?

解决方案

仅使用HTML和Javascript就无法做到这一点。我建议尝试花式上传 MooTools 插件。它使用JavaScript和Flash的混合,但优雅地降级。它适用于所有主流浏览器,包括IE6,还有可下载的Flash 10兼容版本(虽然该演示尚未更新)。


更新(2012-11-26):

valums =“https://github.com/blueimp/jQuery-File-Upload”rel =“noreferrer”> blueimp 文件上传者。

对于递归目录上传,您最好的解决方案是使用 Chrome 11的新文件夹上传API 。如果您使用供应商前缀,它似乎也适用于Firefox。

其他提示

Firefox 42和Edge实施了新的目录上传提案,我们'终于能够做跨浏览器目录上传了。这些API非常糟糕,您可能需要查看我的包装器, uppie

如果您正在避免使用Flash(可能是Java?),那么仅JS / HTML解决方案仍然需要单个文件input,但基本上您将onchange事件附加到<=>,添加一个新的每当选择文件时,<=>到DOM。

FTP?如果是necs,请用Java Applet,ActiveX或任何你想要的东西包装。

如果没有,虽然你不想要闪存,但SWFUpload非常酷,你可能想重新考虑它作为一个不错的选择。

多个文件 上传是可能的 valumsblueimp 文件上传.

对于 录递归 上传的,你的选择更为有限:

  • 你最好的解决办法是使用 铬11的新 文件夹中载API.它也似乎工作上的火狐如果您使用供应商的前缀。

  • 这也是可能的交叉浏览器 Java小程序.然而%的人有java运行环境中安装已经得到相当低的,这些天(< 70%)

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

所以,除了所有免责声明......

多年前和几个雇主之前,我们曾经做过一些实例化FileSystemObject的客户端内容。它将遍历每个文件并一次一个地传递给服务器。不记得我们如何做到这一点的细节:o(

无论如何,这通常意味着客户端框需要将站点添加到受信任站点列表中,并为受信任站点提供一系列被关闭的权限(出于非常好的理由)。就像初始化和编写未标记为安全的ActiveX控件的脚本一样。那种事。

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

这里是使用ExtJS库的纯JS解决方案

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top