前端vue使用jszip压缩文件

一.引入element的上传文件组件

 <el-form-item label="文件">
          <el-upload
            class="upload-demo"
            drag
            action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
            multiple
            :before-upload="beforeUpload"
          >
            <el-icon class="el-icon--upload"><upload-filled /></el-icon>
            <div>点击上传图层文件</div>
          </el-upload>
        </el-form-item>

二.引入解压库

yarn add jszip
import * as JSZip from "jszip"

三.处理上传后的文件

const toZip = async (file) => {
  const zip = new JSZip()
  zip.file(file.name, file)
​
  const res = await zip.generateAsync({
    type: "blob",
    compression: "DEFLATE",
    compressionOptions: {
      level: 5
    }
  })
  console.log("res :>> ", res)
}
const beforeUpload = (file) => {
  toZip(file)
}

四.简单的html例子(直接运行)

<html>

<head>
  <title>客户端压缩文件测试</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jszip/3.6.0/jszip.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script>
</head>
<body>
  <span>选择文件:</span><input type="file" id="fileID" />
  <hr>
  <button onclick="toZip()">压缩选择的文件并保存</button>

  <body>
     <script>
       async function toZip() {
           var file = document.getElementById("fileID");
           var zip = new JSZip();
           console.log('file :>> ', file.files);
           zip.file(file.files[0].name, file.files[0]);
         const res= await  zip.generateAsync({
              type: "blob",
              compression: "DEFLATE", 
              compressionOptions: {
                 level: 5 
              }
           })
           console.log('res :>> ', res);
        }
     </script>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值