龙空技术网

在node中使用jszip对文件进行打包功能

一两句情感语录 98

前言:

目前我们对“nodejs压缩文件”大概比较关怀,小伙伴们都需要剖析一些“nodejs压缩文件”的相关资讯。那么小编同时在网上汇集了一些关于“nodejs压缩文件””的相关知识,希望同学们能喜欢,兄弟们快快来学习一下吧!

首先在项目中安装jszip

npm install --save-dev jszip

zipjs.js工具

var fs = require('fs');var JSZip = require('jszip');var zip = new JSZip();// 获取文件内容function getFileContent(file) {  let content = fs.readFileSync(file, {    encoding: "utf-8"  });  return content;}// 触发压缩/*  参数-files:文件集合  ["D:\packFile\pack\2021-04-15.txt",    "D:\packFile\pack\2021-04-16.txt",    "D:\packFile\pack\2021-04-17.txt",    "D:\packFile\pack\2021-04-18.txt",    "D:\packFile\pack\2021-04-19.txt",    "D:\packFile\pack\2021-04-20.txt",    "D:\packFile\pack\2021-04-21.txt"]  参数-path:文件路径  __dirname+"\\pack\\"  参数-fileType:文件后缀名  xxxxx.txt  参数-name:zip包名称  参数-needDel:是否需要打包前先删除文件(true/false)*/function packFilesToZip(files, path, fileType, name, needDel, callback) {  if (needDel) {    fs.access(path + name + ".zip", (err) => {      if (!err) { // 文件存在        fs.unlinkSync(path + name + ".zip"); //删除文件      }    })  }  let len = files.length  for (let i in files) {    let content = getFileContent(files[i]);    zip.file(files[i].slice(-14, -fileType.length) + fileType, content)    if (i == len - 1) {      packMethod(zip, path, name, function(res) {        callback(res)      })    }  }}// 压缩方法function packMethod(newzip, path, name, callback) {  newzip.generateAsync({    type: "nodebuffer",    compression: "DEFLATE",    compressionOptions: {      level: 9    }  }).then(function(content) {    let zipName = name + '.zip';    // 写入磁盘    fs.writeFile(path + zipName, content, function(err) {      if (!err) {        callback(true)      } else {        callback(false)      }    });  });}

页面使用方法

packFilesToZip(logTxts,logPath,'.txt','pack',false,function(res){  if(res){ // 打包成功上传zip包    console.log("打包成功")  }else{ // 打包失败循环上传文件    console.log("打包失败")  }})

标签: #nodejs压缩文件