打包下载图片
最近一个月公司新启动一个项目,在中后台管理上有个需求是,让用户能够打包下载已经上传好的图片。就研究下了一下,还踩了几个坑,这里简单记录下功能的实现。
一、安装相关的依赖
-
npm install jszip --save
-
npm install file-saver --save
二、使用
-
引入下载好的依赖
import JSZIP from 'jszip' import FileSave from 'file-saver'
-
实例化 jszip
const zip = new JSZIP()
-
将图片转化为 Base64
imgToBase64(url, cb) { let canvas = document.createElement('canvas') let ctx = canvas.getContext('2d') let img = new Image() img.crossOrigin = 'Anonymous' img.onload = function() { canvas.width = img.width canvas.height = img.height ctx.drawImage(img, 0, 0, canvas.width, canvas.height) const result = canvas.toDataURL() cb(result) canvas = null } img.src = url }
-
将图片进行转换后,进行打包下载
this.imgToBase64(imgItem.image_url, (dataURL) => { const formatUrl = dataURL.split(',')[1] zip.file(index.toString() + fileType, formatUrl, { base64: true }) if (Object.keys(zip.files).length === this.viewImage.length) { zip.generateAsync({ type: 'blob' }).then((content) => { FileSave.saveAs(content, '素材图片.zip') }); } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架