[TOC]

[jszip官网](https://stuk.github.io/jszip/documentation/api_jszip/generate_async.html)

### 1. 安装

~~~

npm install jszip

yarn add jszip // 亲测有效

~~~

### 2. 引入

~~~

import JSZip from 'jszip';

import * as JSZip from 'jszip'; // 亲测有效

~~~

### 3. 使用

~~~

let zipFile: JSZip = new JSzip();

~~~

### 4. 示例

[示例1](https://codepen.io/a631807682/pen/EMEKoL?editors=1011)

~~~

function zipFiles(dom){

let zip = new JSZip();

for(let f of dom.files){

zip.file(f.webkitRelativePath, f);

}

zip.generateAsync({type:"blob"})

.then(function (blob) {

const link = document.createElement('a');

link.href = window.URL.createObjectURL(blob);

link.download = 'test.zip';

link.click();

});

}

~~~

示例2

~~~

// webkitdirectory控制是否为上传文件夹

type="file"

class="add-file-input"

v-if="dataForm.type === 'GDB' || dataForm.type === 'SHAPE'"

@change="zipFiles"

multiple="multiple"

webkitdirectory

/>

// 上传文件夹、多选文件打包上传

zipFiles(e) {

const { files } = e.target

let flag = false

const zip = new JSZip()

for (let index = 0; index < files.length; index++) {

files[index].webkitRelativePath && zip.file(files[index].webkitRelativePath, files[index])

// 判断是否包含shp文件

if (files[index].name.slice(-4) === '.shp') {

flag = true

}

}

const arrPath = files[0].webkitRelativePath.split('/')

if (

(arrPath[0].slice(-4) === '.gdb' && this.dataForm.type === 'GDB') ||

(flag && this.dataForm.type === 'SHAPE')

) {

// return promise对象 该方法是异步方法

zip.generateAsync({ type: 'Blob', compression: 'DEFLATE' }).then(content => {

// 创建file对象

const fils = new File([content], arrPath[0], { type: 'zip' })

// console.log(fils)

this.file.fileData = fils

this.dataForm.name = fils.name

this.dataForm.connection.Path = `${fils.name}.zip`

})

} else {

this.$message.error(`上传文件格式应为${this.dataForm.type}类型!`)

this.file.fileData = ''

this.dataForm.name = ''

this.dataForm.connection.Path = ''

}

},

~~~

[示例3](https://www.cnblogs.com/dearxinli/p/8422140.html)

[示例4](https://blog.csdn.net/qq2523208472/article/details/83578722)

jszip压缩文件上传到服务器,2. jszip文件夹打包上传相关推荐

  1. ftp 服务器的目录文件是否存在,ftp服务器的目录文件是否存在

    ftp服务器的目录文件是否存在 内容精选 换一换 为了确保HBase日常数据安全,或者系统管理员需要对HBase进行重大操作(如升级或迁移等),需要对HBase业务数据进行备份,从而保证系统在出现异常 ...

  2. vue 调用pc端本地摄像头、麦克风实现拍照、录视频、录音 并上传到服务器指定树文件夹

    vue 调用pc端本地摄像头.麦克风实现拍照.录视频.录音 并上传 自己写blog只是为了下次方便使用 过程确实很烦 ,自己摸索加各大网站cv查看 可以直接使用 1.调用摄像头拍照 录屏 首先是npm ...

  3. FTP命令:下载,上传FTP服务器中的文件

    步骤 1: 建立 FTP 连接 想要连接 FTP 服务器,在命令上中先输入ftp然后空格跟上 FTP 服务器的域名 'domain.com' 或者 IP 地址例如:1.ftp domain.com2. ...

  4. 网站文件上传到服务器怎么不显示,我已经上传文件,为什么还看不到网站首页?...

    首页 > 虚拟主机 > 已经上传文件还看不到网站 我已经上传文件,为什么还看不到网站首页? 有时候主机用户已经上传了网页文件,但是访问域名的时候,还是看不到他的网站.可能看到的是类似这样的 ...

  5. centos把文件传到服务器,如何将文件传到远程centos服务器上

    如何将文件传到远程centos服务器上 内容精选 换一换 本章节介绍如何将下载的证书安装到IIS服务器上.安装好证书后,您的Web服务器将能支持SSL通信,从而保证您Web服务器的通信安全.如果证书安 ...

  6. 怎么把手机文件导入华为云服务器,华为手机怎么把软件上传到云服务器

    华为手机怎么把软件上传到云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分 ...

  7. ftp上传显示服务器错误,FTP文件夹错误:打开FTP服务器上的文件夹时发生错误

    问题描述:通过我的电脑或资源管理器连接FTP服务器时提示"FTP文件夹错误:打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹.详细信息:The operation time ...

  8. 本机文件怎么拉到服务器,本机文件怎么传到云服务器上

    本机文件怎么传到云服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  9. apk文件上传到服务器,把apk文件上传到云服务器

    把apk文件上传到云服务器 内容精选 换一换 RedisShake是一款开源的Redis迁移工具,支持Cluster集群的在线迁移与离线迁移(备份文件导入),但是部署在其他云厂商Redis服务上的Cl ...

  10. 文件夹加密超级大师会把文件上传到服务器吗,【共享文件夹加密超级大师怎么用】共享文件夹加密超级大师好不好_使用技巧-ZOL软件百科...

    共享文件夹加密超级大师专为企业用户设计,有效保护局域网共享文件夹.软件提供了共享文件夹用户权限设置功能,可以为每一个用户分配不同的权限,完美解决了"共享即不能保密,保密即不能共享" ...

最新文章

  1. android好用的第三方库2018使用总结
  2. IBASE structure
  3. 链表题目汇总(python3)
  4. 2017-12-09 JavaScript实现ZLOGO子集: 测试用例
  5. 使用git时报错出现vim.exe.stackdump
  6. Example3_3
  7. 位于地下88米,一晚6000块,上海这家酒店房间内竟还有玄机!
  8. 执行Linux脚本出错,出现No Such file or directory异常
  9. MSP430学习笔记10-ADC采集1602显示
  10. 关于昆仑通态通道处理设置
  11. MySQL唯一索引和普通索引的区别
  12. 如何测试扫码支付二维码?
  13. Opencv-获取两点之间距离
  14. 订单导出(淘宝天猫)
  15. CSS — 导航栏篇(一)
  16. Linux/ Unix 键盘检测程序
  17. spring的事务依赖
  18. 筑龙网下载的文件格式是php_建筑工程竣工验收资料填报指南(范本)
  19. 2020-12-10 MATLAB学习小结(十九)
  20. 红米note2位置服务器,红米Note2

热门文章

  1. Java 8的新特性(入门)
  2. 【学习笔记】福州大学网络课程 网络空间安全概论(1,4)
  3. android 反编译 签名,Android反编译及重签名命令
  4. 用微信名片制作软件打造专属的电子名片
  5. tcl语言读取文件一行_TCL语言笔记:TCL基础语法
  6. android使用h5框架,轻量级Android  H5 Native Hybrid 框架
  7. 安装了谷歌服务框架还是闪退_小米手机安装谷歌服务(Google play)
  8. 爬取mzitu图 线程 进程
  9. lnmp一键安装包 php7,LNMP一键安装包 V1.7 正式版发布
  10. Android 系统root教程-magisk最新版