【问题标题】:Using NodeJS with AppJS to Package Zip with JSZip使用NodeJS配合AppJS使用JSZip打包Zip
【发布时间】:2015-10-08 09:25:54
【问题描述】:

我的原始文件无法使用本地方法下载,所以我决定使用Node.js,因为它已经打包在AppJS 中,但 zip 文件仍然无法在 AppJS 中执行。

$(".export").on("click", function() {
  var fs = require("fs");
  var JSZip = require("jszip");

  var zip = new JSZip();
  zip.file("hello.txt", "Hello node!");

  var content = zip.generate({type:"nodebuffer"});
  // saveAs(content, "test.zip");

  fs.writeFile("test.zip", content, function(err) {
    if (err) throw err;
  });
});
body {
  background: #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://stuk.github.io/jszip/dist/jszip.min.js"></script>
<script src="http://stuk.github.io/jszip-utils/dist/jszip-utils.js"></script>
<script src="http://stuk.github.io/jszip/vendor/FileSaver.js"></script>

<button class="export">Download</button>

注意:我尝试过使用 File API 保存文件,但我唯一能够成功在 AppJS 中写入文件的方法是使用 Node.js,如下所示。

var fs = require("fs");
fs.writeFile("hello.txt", "Hi", function(err) {
  if (err) throw err;
});

【问题讨论】:

    标签: javascript node.js appjs


    【解决方案1】:

    我没有使用 Node,而是在需要 FileSaver.js 的浏览器中做类似的事情。

    你试过了吗:

    var JSZip = require('jszip');
    var saveAs = require('filesaver.js');
    
    var zip = new JSZip();
    zip.file("hello.txt", "Hello node!");
    
    var blob = zip.generate({type: 'blob'});
    saveAs(blob, 'images.zip');
    

    这里的主要区别是使用{type: 'blob'} 而不是nodebuffer。我使用简单的 XHR 下载模块成功地将响应类型设置为 arraybuffer

    module.exports = function download(url, callback) {
      var xhr = new XMLHttpRequest();
      xhr.open('GET', url, true);
      xhr.responseType = 'arraybuffer';
    
      xhr.onload = function(e) {
        callback(null, xhr.response);
      };
    
      xhr.onerror = function(e) {
        callback(status.response);
      };
    
      xhr.send(null);
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 2017-05-15
      • 2023-03-26
      • 2015-03-01
      相关资源
      最近更新 更多