下载数据 URL 文件

新手上路,请多包涵

我正在考虑制作一个任何人都可以从浏览器访问的完全基于 JavaScript 的 zip/unzip 实用程序。他们只需将 zip 文件直接拖到浏览器中,就可以下载其中的所有文件。他们还可以通过拖动单个文件来创建新的 zip 文件。

我知道在服务器端做会更好,但这个项目只是为了好玩。

如果我利用各种可用的方法,将文件拖入浏览器应该很容易。 (Gmail 风格)

编码/解码应该没问题。我看过一些 as3 zip 库,所以我相信我应该没问题。

我的问题是最后下载文件。

window.location = 'data:jpg/image;base64,/9j/4AAQSkZJR....'

这在 Firefox 中运行良好,但在 Chrome 中不行。

我可以使用 <img src="data:jpg/image;ba.." /> 将文件作为图像嵌入到 chrome 中,但文件不一定是图像。它们可以是任何格式。

谁能想到另一种解决方案或某种解决方法?

原文由 Mikee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 842
2 个回答

想法:

  • 尝试 <a href="data:...." target="_blank"> (未经测试)

  • 使用 downloadify 而不是数据 URL(也适用于 IE)

原文由 Pekka 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果您还想为文件提供建议名称(而不是默认的“下载”),您可以在 Chrome、Firefox 和某些 IE 版本中使用以下名称:

 function downloadURI(uri, name) {
  var link = document.createElement("a");
  link.download = name;
  link.href = uri;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  delete link;
}

以下示例显示了它的用途:

 downloadURI("data:text/html,HelloWorld!", "helloWorld.txt");

原文由 owencm 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏