标签: adm-zip

Adm Zip将文件压缩为目录

我正在尝试使用Adm-Zip将文件打包到zip文件中

var AdmZip = require('adm-zip');

var pathToZip = 'build/release/Ext.zip';


var zip = new AdmZip();

zip.addLocalFile('background.js');
zip.addLocalFile('chrome_ex_oauth.html');
zip.addLocalFolder('images');
zip.writeZip(pathToZip);
Run Code Online (Sandbox Code Playgroud)

但是,所有文件都将作为文件夹添加到zip中,并且实际内容不会被压缩.

截图

入门参考如下,这似乎是一个非常简单的例子,它没有按预期工作.我究竟做错了什么? https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction

javascript zip node.js adm-zip

13
推荐指数
1
解决办法
7029
查看次数

nodejs从url下载并解压缩文件,错误没有找到END标头

我正在尝试从nseindia.com下载文件并在内存中解压缩.我正在使用nodejs webkit和adm-zip.我在控制台上收到错误:

未捕获的无效或不支持的zip格式.找不到END标头

代码:

var http = require('http'),
                fs = require('fs'),
                request = require('request'),
                AdmZip = require('adm-zip'),
                out = fs.createWriteStream('data/nseeqbhav.zip'); // For saving NSE Equity bhavcopy


// Downloading NSE Bhavcopy 
request(
           { method: 'GET',
               uri: 'http://www.nseindia.com/content/historical/EQUITIES/2012/DEC/cm19DEC2012bhav.csv.zip',
               headers: { "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11",
                   "Referer": "http://www.nseindia.com/products/content/all_daily_reports.htm",
                   "Accept-Encoding": "gzip,deflate,sdch",
                   "encoding": "null",
                   "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                   "Cookie": "cookie"
               }
           }
            ).pipe(out);
            var zip = new AdmZip("data/nseeqbhav.zip"),
            zipEntries = zip.getEntries();
            zip.extractAllTo(/*target path*/"data/unzip/", /*overwrite*/true);
Run Code Online (Sandbox Code Playgroud)

我试着跟随结束流但没有成功.

out.end();
out.destroy(); 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

unzip download node.js adm-zip

8
推荐指数
1
解决办法
8333
查看次数

解压缩文件无效

我使用以下代码

https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction

我需要的是从请求获取一个zip文件(我使用快递和我的请求和响应)我需要提取(解压缩)它到某个路径(在本地驱动器的示例中),我应该在哪里放req和我在这里失踪的东西让它发挥作用

  fn: function (req, res) {
       var admZip = require('adm-zip');

        var zip = new admZip();

        zip.addLocalFile("C://TestFolder//TestZip");
Run Code Online (Sandbox Code Playgroud)

在请求正文中我获取zip文件(即时通讯使用邮递员,在我体内使用二进制文件并选择一个zip文件)

zip unzip node.js express adm-zip

6
推荐指数
1
解决办法
972
查看次数

adm-zip不会压缩数据

我正在尝试使用adm-zip将内存中的文件添加到内存中的zip文件中.似乎正确创建了zip文件(保存zipData的结果可以在Windows中解压缩),但压缩率始终为零.

这是我期望工作的代码模型,但没有.从输出中可以看出,"compressedData"为null,"size"和"compressedSize"无论传递给文件内容的值是什么.

var admzip = require("adm-zip")
var zip = new admzip();

zip.addFile("tmp.txt", "aaaaaaaaaaaaaaaaaaaa");
var zipData = zip.toBuffer();

console.log(zip.getEntries()[0].toString());
Run Code Online (Sandbox Code Playgroud)

https://runkit.com/embed/pn5kaiir12b0

如何让它压缩文件以及压缩文件?

node.js adm-zip

5
推荐指数
1
解决办法
220
查看次数

Adm-zip zip 格式无效或不受支持。未找到 END 标头

我收到此错误“无效或不受支持的 zip 格式”。当我尝试使用 adm-zip (缓冲区)解压缩内存中的文件时,未找到 END 标头。我已经确认我尝试解压缩的文件也是一个 zip 文件。

                    ftpConnection.get(newZipFile.name, function (err, stream:NodeJS.ReadableStream) {
                        if (err) {
                            console.log('error: ', err) 
                        }

                        //  unzipping  files
                        let zdata = []
                        let innerFiles: admZip.IZipEntry[] = []
                        stream.on('data', (buffer) => { zdata.push(buffer) }) 
                        stream.on('end', function () {

                            try {
                                let zip = new admZip(Buffer.concat(zdata)) 
                                innerFiles = zip.getEntries() 
                            } catch (e) {
                                console.log('error: ', e)
                                return
                            }
                       }
Run Code Online (Sandbox Code Playgroud)

javascript zip adm-zip

5
推荐指数
0
解决办法
1867
查看次数

使用 axios 下载 zip 并在内存中使用 adm-zip 解压(电子应用程序)

我需要下载一个文件并将axios其解压缩到电子应用程序的内存中。

我读了一些支持字节缓冲区构造函数的SO线程(例如adm-zip,但我在文档中看不到这一点。当我提取内容时,它的行为就像数组为空,但事实并非如此。它只是创建一个文件,并且不会抛出任何我不想使用的错误request,因为该 api 被标记为已弃用。我的代码是这样的:

const axios = require("axios");
const AdmZip = require('adm-zip');
   
const url = "http://update-service.test.w3champions.com/api/maps";
const body = await axios.get(url, {
    responseType: 'arraybuffer'
});
const data = body.data;
const zip = new AdmZip(data);
zip.extractAllTo(to, true);
Run Code Online (Sandbox Code Playgroud)

我觉得超级愚蠢,因为我曾经工作过一次,然后改变了一些东西,现在我似乎没有再次发现错误:/遗憾的是我没有提交工作状态......

编辑:所以,我们想通了:Electron 做了一些奇怪的事情,返回一个数组缓冲区而不是 adm-zip 需要的缓冲区。由于我懒惰地添加了包arraybuffer-to-buffer,现在代码可以工作:

const arrayBufferToBuffer = window.require('arraybuffer-to-buffer');
const url = `${this.updateUrl}api/${fileName}?ptr=${this.isTest}`;
const body = await axios.get(url, {
    responseType: 'arraybuffer'
});

const buffer = arrayBufferToBuffer(body.data);
const zip = new AdmZip(buffer);
zip.extractAllTo(to, true);
Run Code Online (Sandbox Code Playgroud)

node.js adm-zip electron axios

5
推荐指数
2
解决办法
9854
查看次数

Adm Zip - 文件压缩为文件夹

我正在使用adm-zip拉链local directory and all its nested files and directories.

var AdmZip = require('adm-zip');
var pathToZip = process.env.PUBLIC + '/Demo/Backup.zip';
var zip = new AdmZip();
zip.addLocalFolder("C:\\Users\\Public\\Test\\db");
zip.writeZip(pathToZip);
Run Code Online (Sandbox Code Playgroud)

问题:

所有文件都被添加为zip文件夹中的文件夹,实际内容不会被压缩.

哪里错了?

javascript zip node.js adm-zip

2
推荐指数
1
解决办法
1545
查看次数

标签 统计

adm-zip ×7

node.js ×6

zip ×4

javascript ×3

unzip ×2

axios ×1

download ×1

electron ×1

express ×1