zoukankan      html  css  js  c++  java
  • js压缩文件读取处理

    1.引入必须依赖库jszip+jsutils=>>>建议使用以下版本,其他版本的jszip会报错

    <!--zip文件读取-->
    <script src="https://cdn.bootcss.com/jszip/2.1.0/jszip.min.js"></script>
    <script src="https://cdn.bootcss.com/jszip-utils/0.0.2/jszip-utils.min.js"></script>
    2.实例化jsZip对象并读取文件:
    <script>
    JSZipUtils.getBinaryContent('http://static.yygo.tv/Gift/o_1c3239h691nd2uohmf414b8dlia.zip', function (err, data) {
    if (err) {
    throw err; // or handle err
    }
    var zip = new JSZip(data);

    JSZipUtils.getBinaryContent('read.zip', function (err, data) {
    if (err) {
    throw err; // or handle err
    }
    var zip = new JSZip(data);
    function Uint8ArrayToString(fileData){
    var dataString = "";
    for (var i = 0; i < fileData.length; i++) {
    dataString += String.fromCharCode(fileData[i]);
    }
    return dataString

    }
    var dirname = 'read';
    // 转换格式字符串
    var str = Uint8ArrayToString(zip.folder().files[dirname+'/package.json']._data.getContent());
    //将字符串转换对象
    var res = JSON.parse(str);

    console.log(res)

    </script>
    Tip=>jsZip读取的data为对象,buffer参数为每个图片的文件名,可通过zip.file('')||zip.folder()读取文件名或文件夹
     
    Uint8Array转字符串

    function Uint8ArrayToString(fileData){
    var dataString = "";
    for (var i = 0; i < fileData.length; i++) {
    dataString += String.fromCharCode(fileData[i]);
    }

    return dataString

    }

    字符串转Uint8Array

    function stringToUint8Array(str){
    var arr = [];
    for (var i = 0, j = str.length; i < j; ++i) {
    arr.push(str.charCodeAt(i));
    }

    var tmpUint8Array = new Uint8Array(arr);
    return tmpUint8Array
    }

    string转ArrayBuffer

    function str2ab(str) {
    var buf = new ArrayBuffer(str.length * 2); // 每个字符占用2个字节
    var bufView = new Uint16Array(buf);
    for (var i = 0, strLen = str.length; i < strLen; i++) {
    bufView[i] = str.charCodeAt(i);
    }
    return buf;
    }

    ArrayBuffer转String

    function ab2str(buf) {
      return String.fromCharCode.apply(null, new Uint8Array(buf));
    }
     
  • 相关阅读:
    C#微信公众号的开发——服务配置
    JavaJDBC整理
    JavaSet接口、唯一元素和Map接口整理
    Java泛型、List接口整理
    Java集合、Iterator迭代器和增强for循环整理
    Java基础内部类、包的声名、访问修饰符、代码块整理
    Java基础super关键字、final关键字、static关键字、匿名对象整理
    Java基础构造方法和this关键字整理
    Java抽象类、接口整理
    Java封装、继承整理
  • 原文地址:https://www.cnblogs.com/web-chuanfa/p/12373711.html
Copyright © 2011-2022 走看看