使用 JavaScript 创建一个文件夹

create a folder with JavaScript

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

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

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

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

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

JSzip 选项

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

厚颜无耻的选择

您的最佳选择 - 除了您已打折的实际最佳选择(服务器端) - 已解释 here。即 - 为每个文件创建一个 iframe。

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