【问题标题】:create a folder with JavaScript用 JavaScript 创建一个文件夹
【发布时间】:2015-09-08 11:58:20
【问题描述】:

我知道浏览器不允许 JavaScript 直接在计算机上做很多事情,这不是我的问题。我的问题是:如何使用 JavaScript 在网络上创建一个文件,然后询问(可能会通过一个弹出窗口)下载该文件夹和其中的任何文件。此文件夹需要允许 JavaScript 访问以在其中放置文件,例如图像文件。此文件夹最初可能只是另一个 JavaScript 值(如对象)或 URL。

我进行了研究,但我发现的大部分内容是询问 JavaScript 是否可以直接在计算机上创建一个文件夹,而我的问题是询问创建文件夹,然后要求下载它。一定有办法,因为在 Google Drive 中,drive 可以将多个文件放在一个 .zip 文件夹中以供下载,这不仅适用于 Chrome,也适用于 Firefox 和 Internet Explorer。像http://stuk.github.io/jszip/ 这样的一些网站提供了自己的方式来创建 .zip 文件,但如果可能的话,我不希望使用 JavaScript 库。

这对于生成多个图像文件很有用,但只要求用户下载一次,而不是每个文件。

我更愿意在客户端创建 zips。

【问题讨论】:

  • 单独使用 JavaScript 是可能的,但它相对复杂。谷歌在服务器上制作拉链,这是一个简单的解决方案。
  • @Juhana,这是您评论的好信息。尽管它很复杂,但是否有您推荐的资源来了解有关在客户端创建 zips 的更多信息?如果您还没有一个想法,请不要太担心找到一个。再次感谢您的回复。
  • 如果您不想使用现成的库来创建 zip,则必须自己制作。您必须阅读 zip 压缩的工作原理,在 JS 中实现算法,并了解如何将创建的文件传递给用户。但除非您特别想学习如何实现 zip 压缩,否则没有太多理由重新发明轮子。
  • @Juhana,你是对的。也许我可以使用图书馆。 :)

标签: javascript html download directory


【解决方案1】:

所以这是一个有趣的问题,我会尽力回答。简单的解决方案是根本不这样做。使用 javascript 异步请求服务器创建所需的 .zip,然后为用户提供下载链接/提示。但我离题了,你想要这一切都在内部!

JSzip 选项

您将无法编写可以在客户端压缩 .zip 文件的可靠库。 JSzip 是最好的选择,但它并不像它应该的那样可靠。如果您有时间,您可以通过source 并在需要的地方进行改进。

厚颜无耻的选择

您的最佳选择 - 裸露您已打折的实际最佳选择(服务器端) - 解释为 here。也就是说 - 为每个文件创建一个 iframe。

不幸的是,如果您坚持使用客户端工作,您将找不到比这些选项更好的选择。 浏览器不是用来压缩文件的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多