前言:
目前我们对“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压缩文件