无法生成zip的现有文件夹(JSZip.js)

时间:2014-09-05 06:21:20

标签: jquery jszip

案例1: 我正在尝试访问现有文件夹以进行zip操作,但它无法生成它。我已尝试使用以下代码来压缩现有文件夹。

var zip = new JSZip();
zip.folder("../Download/Themes");
zip.generate();

实施例: 我有一个文件夹(主题),文件,我想在我的应用程序中压缩。

  • 文件夹 - 主题
    • file - css1
    • file - css2

是否可以从现有文件夹生成zip文件?

案例2: 生成zip文件后,我可以从我的应用程序中的物理路径获取zip文件吗?

提前致谢...

2 个答案:

答案 0 :(得分:1)

我认为您需要根据JSZip文档手动将文件及其内容添加到JSZip实例中。因此,如果要将现有文件夹添加到zip文件中,则需要遍历该文件夹并添加如下所示的每个文件:

zip.file(filename, content);

在您的情况下,您应该按如下方式创建它:

zip.file("Themes/css1",fs.readFileSync('css1'));
zip.file("Themes/css2",fs.readFileSync('css2'));
var content = zip.generate({type:"nodebuffer"});
fs.writeFile("Themes.zip", content, function(err) {
  if (err) throw err;
});
  

zip.folder(" sub")只创建或切换到您的zip实例的子文件夹,您应该自己放置内容,然后保存到物理文件夹。

答案 1 :(得分:0)

在jquery中使用get函数



var zip = new JSZip();
jQuery.get('Themes/css1.css', function(data) {

        zip.add("Themes/css1.css",data);
        var content = zip.generate({type:"nodebuffer"});
     
        zip.add("hello1.html", bt);
	   content = zip.generate();
	   location.href="data:application/zip;base64," + content;
        
}, 'text');