admin管理员组

文章数量:1639677

背景:一方面,部分系统对文件的私密性和安全性要求较高,实现前端加密打包,服务端不存储密码 ,下载时手动输入密钥并解压文件。另一方面,传输压缩包到客户端,节约了带宽,节约了传输时间。

使用的库: zip.js

  • Support of the Zip64 format
  • Support of WinZIP AES and PKWare ZipCrypto encryption
  • Support of simultaneous reads and writes to one or more zip files
  • Integrated worker pool manager
  • No dependencies
安装
 npm install @zip.js/zip.js 
引用
import * as zip from "@zip.js/zip.js";      //ES6 module
const zip = require("@zip.js/zip.js");     // or CommonJS module
实现

以下为vue的实现方案:

加密上传文件
import * as zip from '@zip.js/zip.js'
...
...
methods: {
   
  async handleZipFile () {
   
    const controller = new AbortController()
    const signal = controller.signal
    var zipWriter = new zip.ZipWriter(new zip.BlobWriter('application/zip'))
    await Promise.all(_.map(this.files, async (file) => {
   
      await zipWriter.add(file.name, new zip.BlobReader(file.raw), {
   
        bufferedWrite: true,
        password: this.password,
        signal,
        zipCrypto: true,
        onprogress: (index, max) => {
   
          

本文标签: 上传文件zipjs