zoukankan      html  css  js  c++  java
  • nodejs——压缩文件_archiver

    工作需要,由于html无法访问并下载带有中文的路径,例子:“127.0.0.1::8088/files/第一张图片.jpg”,所以想到了先将原图片压缩并命名为不带中文的文件名,下载后用户自行解压缩的方法。

    此次采用的包为:archiver

    下面是此次我使用该包的源代码和注释,供同学们参考:                                                                                                

    var ARCHIVER = require('archiver');
    var FS = require('fs');
    
    var presentDate = new Date();
    var myDate = presentDate.toLocaleDateString();//获取当前日期,eg:2017-02-08,以此日期为压缩包文件名
    var path1 = '/ARCHIVER/appData/files/第一张图片.jpg';//图片的绝对路径
    var path2 = '/ARCHIVER/appData/files/第二张图片.jpg';
    var files = [path1, path2];//将图片路径组合成数组形式,用for循环遍历
    //压缩后文件输出地址:/ARCHIVER/appData/files/,压缩包名:eg:2017-02-08.zip
    var output = FS.createWriteStream(/ARCHIVER/appData/files/ + myDate + '.zip');
    //archiver可压缩为zip或tar格式,这里选择zip格式,注意这里新定义了一个变量archive,而不是原有的archiver包引用
    var archive = ARCHIVER('zip', {
        store: true
    });
    //将压缩路径、包名与压缩格式连接
    archive.pipe(output);
    //nameInZIP指压缩包内的文件名
    var nameInZIP = ['第一张图片.jpg', '第二张图片.jpg'];
    for (var i = 0; i < files.length; i++) {
        console.log(files[i]);
        //FS读取文件流并命名,将读取的文件流append到压缩包中
        archive.append(FS.createReadStream(files[i]), {'name': nameInZIP[i]});
    }
    //压缩结束
    archive.finalize();
  • 相关阅读:
    工业4G DTU是什么和普通DTU有什么不同
    NB-IOT基站的优势和特点
    rs485通讯模块有什么作用
    串口服务器的具体做用
    4G DTU是什么 可以应用于哪些行业?
    关于linux文件出现属性显示?????????? ? ?问题的一些解决方法
    log4j.properties配置与将异常输出到Log日志文件实例
    将字符串向hdfs中写入,出现中文乱码!
    impala操作hase、hive
    Kudu基本操作及概念
  • 原文地址:https://www.cnblogs.com/yourstars/p/6380556.html
Copyright © 2011-2022 走看看