javascript - 依次发送多个文件给用户下载

标签 javascript html download

我正在尝试执行以下操作:

  • 向用户显示包含大量文件的网格
  • 用户可以选择任意数量的文件
  • 应提示用户输入目标位置的每个文件
  • 每个文件应依次下载

我找不到一个好的解决方案,因为:

  • 我需要一个跨浏览器解决方案(无插件),但我可以依赖 IE10+ 和 HTML5
  • 这些文件不应以 zip 文件或任何其他存档的形式下载
  • 使用 document.write 插入多个 iframe 感觉很糟糕,并且大多数浏览器都不鼓励

最佳答案

我设法构建了一个使用 HTML FileSystem API 下载多个文件的可能示例。我在构建这个时遇到了一些问题,我将在下面记下。请注意,这只是一个示例,可以进行很多改进(代码方面和功能方面)。

我停止了开发,因为我无法传输二进制文件,但也许有人可以给我一些如何做到这一点的线索。 (目前我在二进制 ajax 传输和 JSON 方面遇到了困难。(我不能说是否可以通过 ajax 传输图像/二进制文件)。

在 GitHub 上发布源代码: https://github.com/posixpascal/FileSystem-API-Example

需要注意的一些事项:

我只能说,这目前还不是一个解决方案,而且 API 还没有准备好供大众使用。您可以通过使用 Flash 和其他实用程序来添加进一步的支持,以弥补文件系统 API 支持的不足。

工作原理:

一旦用户单击下载链接,我的脚本就会使用服务器端 PHP 脚本收集有关文件的信息。之后,它请求一些 block ,直到本地存储的文件的文件大小与 php 脚本发送的文件大小匹配。

文件准备好后,我创建一个不可见的 a 标记并将 href 设置为“filesystem:myurl.de/theFile”,并触发该链接上的单击事件。我还添加了“下载”属性,以便浏览器也被迫下载 .txt 文件。

这并不能完全解决您的问题,但您可以检查源代码并希望构建一些能够满足您需求的东西。我猜您已经开始采用不同的方法来下载多个文件。

关于javascript - 依次发送多个文件给用户下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25031477/

相关文章:

powershell - 如何使用 PowerShell 从 SharePoint 下载文件?

javascript - FB.ui 共享对话框发布和取消具有相同的响应

javascript - JS超时不触发

javascript - 如何先不提交表单,然后再提交呢?

javascript - AngularJS - 如何维护表的已检查票证 ID

c# - 使用 HttpClient 进行异步文件下载

javascript - clear() 函数不适用于数字类型的输入

javascript - 迭代包含 mysql 数据的变量(使用 JavaScript)

html - 如何在 Bootstrap Modal 标题上添加响应式背景图片?

jquery - 通过 $.ajax 调用返回附件