Tag: jszip

JSZip内存问题

我在Node.js应用程序中遇到了很大的内存消耗,当一个接一个地加载〜100MB zip文件时,它将它们作为“NodeBufferReader”保存在内存中。 我正在使用的库称为JSZip,可以在这里find: https ://stuk.github.io/jszip/ 如果我访问相同的zip文件两次,那么它不会增加内存使用量,但是对于每个“额外的”.zip文件,我访问内存的时间大约会增加.zip文件的大小。 我所访问的文件大概都在100MB或更大,所以你可以想象这有可能变得相当大,相当快。 Node.js应用程序是一个websocket服务器,它从.zip文件中读取文件并将其作为base64数据返回给请求者。 有问题的function在这里: function handleFileRequest(args, connection_id) { var zipIndex = 0, pathLen = 0, zip_file = "", zip_subdir = ""; try { if (args.custom.file.indexOf(".zip") > -1) { // We have a .zip directory! zipIndex = args.custom.file.indexOf(".zip") + 4; pathLen = args.custom.file.length; zip_file = args.custom.file.substring(0, zipIndex); zip_subdir = args.custom.file.substring(zipIndex + […]

JSZip提取文件对象

我通过执行以下操作来解压缩JSZip的zip文件: jszip.loadAsync(zipFile) ['then'](function(zip) { return bluebird.map(Object.keys(zip.files), function (filename) { // converts the compressed file to a string of its contents return zip.files[filename].async('string').then(function (fileData) { // fileData is a string of the contents }) }) }) 但是,此提取的输出是文件内容的string数组。 我想知道是否有可能获得一组文件对象作为输出,而不是因为我以后需要文件对象。 我曾试图做 new File(fileData.split('\n'), filename) 但它丢失了原始文件格式。 有什么build议么?

Node.js jszip库来提取

我正在写一些节点代码,并使用jszip压缩和解压缩一些文件。 我知道如何压缩,但不知道如何解压缩或解压缩。 有几个链接在stackoverflow不起作用。 任何人都有解决办法? 以下是我所尝试过的 var fs = require('fs'); var JSZip = require('jszip'); var zipName = "C:/test.zip"; var unzip = "C:/unzip"; fs.readFile(zipName, function (err, data) { if (err) throw err; var zip = new JSZip(); zip.folder(unzip).load(data); });