簡體   English   中英

從ZIP文件檢索數據-NodeJS

[英]Retrieving data from a ZIP File - NodeJS

我問自己一個問題,

我可以在雲平台上讀取文件(主要是csv),但是當它是zip時,我會得到很多:

j�\lȜ��&��3+xT��J��=��y��7���vu�  {d�T���?��!�

這很正常,所以我想知道是否有一種方法可以將其放入變量中,然后使用lib或類似的方法將其解壓縮。

謝謝你的時間

您應該使用npm install node-stream-zip

const StreamZip = require('node-stream-zip');
const zip = new StreamZip({
    file: 'archive.zip',
    storeEntries: true
});

並獲得這樣的信息

zip.on('ready', () => {
    console.log('Entries read: ' + zip.entriesCount);
    for (const entry of Object.values(zip.entries())) {
        const desc = entry.isDirectory ? 'directory' : `${entry.size} bytes`;
        console.log(`Entry ${entry.name}: ${desc}`);
    }
    // Do not forget to close the file once you're done
    zip.close()
});

希望能幫助到你 :-)

您應該使用jszip npm軟件包。 這使您可以快速讀取zip文件。

例:

var fs = require("fs");
var JSZip = require("jszip");


    // read a zip file
    fs.readFile("project.zip", function(err, data) {
        if (err) throw err;
        JSZip.loadAsync(data).then(function (zip) {
          files = Object.keys(zip.files);
          console.log(files);
        });
    });

To read the contents of a file in the zip archive you can use the following. 

    // read a zip file
    fs.readFile("project.zip", function(err, data) {
        if (err) throw err;
        JSZip.loadAsync(data).then(function (zip) {

          // Read the contents of the 'Hello.txt' file
          zip.file("Hello.txt").async("string").then(function (data) {
            // data is "Hello World!"
            console.log(data);
          });

        });
    });

並從服務器下載zip文件:

request('yourserverurl/helloworld.zip')
  .pipe(fs.createWriteStream('helloworld.zip'))
  .on('close', function () {
    console.log('File written!');
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM