JSZip的简单使用

​前言

在前端的项目开发中 ,上传文件是非常常见的需求  那么 如果我们上传的是压缩包 并要对压缩包的内容进行解压、读取并判断  我们该怎么做呢?这里简单介绍一下  利用jszip解压 并对压缩包里的内容进行分析。


 

一、JSZip是什么?

JSZip就是一个javascript库  用来操作.zip文件的工具  可以用来压缩  解压 。

具体使用可参考官方文档:JSZip

二、使用步骤

1.引入库

// jszip的引入 有很多方式  可以使用npm install  下载   也可使用require 引入
// 这里使用原生的引入方式
<script src="../js/jszip/jszip.js"></script>
<script src="../js/jszip/jszip-utils.js"></script>


2.简单使用

代码如下(示例):这里 我上传的是一个zip压缩包 且里面有图片  利用jszip对压缩包解压 并获取图片的大小  分辨率等

<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>

<body id="body">
  <input type="file" accept=".zip" id="fileImport">  // 简单的一个上传文件   限制上传文件为zip压缩包
  <div id="demo"></div>
   // 引入jszip库
  <script src="../js/jquery-1.8.3.min.js"></script>
  <script src="../js/jszip/jszip.js"></script>
  <script>
  </script>
</body>

</html>

 在js中的使用:

$("#fileImport").on('change',function(event) {
   var files = event.target.files;
   for (var i = 0; i< files.length;i++) {
     handleFile(files[i]);
   }
});
function handleFile(fileObj) {
  //  进行解压   获取压缩包里的内容
  JSZip.loadAsync(fileObj).then(function(zip) {
     console.log(zip);
     // zip.files  既压缩包中  包含的有什么文件
     zip.forEach(function(relativePath,zipEntry) {  // zipEntry  就是压缩文件中的文件实例
        console.log(zipEntry);
        zipEntry.async("base64").then(function(res) {
          console.log(res);
          // res  就是将图片转换成base64
          imgLoad('data:image/png;base64,' + res,function(width,height) {
                console.log(width,height);  // 获取图片的宽 * 高
          })
        })
     })
  })
}

function imgLoad (url, callback) {
      var img = new Image();
      img.src = url;
      if (img.complete) {
        callback(img.width, img.height);
      } else {
        img.onload = function () {
          callback(img.width, img.height);
          img.onload = null;
        };
      };
 };

总结

以上就是利用jszip来对zip压缩包进行解压  并对压缩包中的图片进行一些数据获取的使用心得~~~大家如果项目也使用了该工具并对此有些疑问  欢迎大家在评论中提出~我们可以一些探讨O(∩_∩)O

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值