当前位置: 首页 > news >正文

axios接收zip文件文件

问题代码

async previewLoadRequest(end){const response = await axios.get('/api2/pdfToImage',  {params: { path: this.file.path ,startPage: this.endPage, // 开始页码endPage: end , // 结束页码},});if(response.status != 200){return false}console.log('response',response)console.log('response.data',response.data)// 2. 解压ZIP文件const zip = new JSZip();// const zipData = await zip.loadAsync(response.data);const blob = new Blob([response.data], {type: 'application/zip'});const zipData = await zip.loadAsync(blob);for (const [name, file] of Object.entries(zipData.files)) {console.log('name',name)if (!file.dir) { // 跳过目录const blob = await file.async('blob');const url = URL.createObjectURL(blob);this.urls.push(url);}}return true
},

抛出错误

fileCard.vue:154 处理失败: Error: Corrupted zip: 
missing 40318 bytes. at h.readEndOfCentral 
(jszip.min.js:13:1) at h.load (jszip.min.js:13:1) 
at eval (jszip.min.js:13:1) 
at async Proxy.previewHandler (fileCard.vue:138:1)

首要排查的是是否没加上responseType: 'blob' 或 responseType: 'arraybuffer'​ 导致的二进制数据接收异常。

加上后解决

async previewLoadRequest(end){const response = await axios.get('/api2/pdfToImage',  {params: { path: this.file.path ,startPage: this.endPage, // 开始页码endPage: end , // 结束页码},responseType: 'blob' // 设置响应类型为 Blob非常重要不能省略});if(response.status != 200){return false}console.log('response',response)console.log('response.data',response.data)// 2. 解压ZIP文件const zip = new JSZip();// const zipData = await zip.loadAsync(response.data);const blob = new Blob([response.data], {type: 'application/zip'});const zipData = await zip.loadAsync(blob);for (const [name, file] of Object.entries(zipData.files)) {console.log('name',name)if (!file.dir) { // 跳过目录const blob = await file.async('blob');const url = URL.createObjectURL(blob);this.urls.push(url);}}return true
},

http://www.dtcms.com/a/210035.html

相关文章:

  • 2025 中青杯数学建模AB题
  • AUTOSAR图解==>AUTOSAR_SRS_LIN
  • 前端实战:用 JavaScript 模拟文件选择器,同步实现图片预览与 Base64 转换
  • SQLAlchemy 2.0 查询使用指南
  • laravel中模型中$fillable的用法
  • AI方案调研与实践二:模型训练
  • 【 大模型技术驱动智能网联汽车革命:关键技术解析与未来趋势】
  • PHP学习笔记(九)
  • 10大Python知识图谱开源项目全解析
  • 白杨SEO:做AI搜索优化的DeepSeek、豆包、Kimi、百度文心一言、腾讯元宝、通义、智谱、天工等AI生成内容信息采集主要来自哪?占比是多少?
  • Spring Boot 中修改 HTTP 响应状态码(即 `response.status`)可以通过以下几种方式实现
  • 新能源产业破局之道:达索 3DE(PLM)系统重构数据管理与工程变更效率
  • 什么是数据分析
  • 2025年 中青杯A题论文发布
  • Redis学习打卡-Day6-Redis 高可用(上)
  • linux debug技术
  • el-form 使用el-row el-col对齐 注意事项
  • 后端开发概念
  • 【MPC控制 - 从ACC到自动驾驶】车辆纵向动力学建模与离散化:MPC的“数字蓝图”
  • 微前端架构:从单体到模块化的前端新革命
  • 【C++】C++异步编程四剑客:future、async、promise和packaged_task详解
  • 使用 CodeBuddy 实现视频合并工具:解决本地视频处理痛点
  • 可增添功能的鼠标右键优化工具
  • LumaDot (亮度可调的屏幕圆点)
  • 【Linux仓库】权限的量子纠缠:用户/组/other如何编织Linux访问控制网?
  • uniapp+ts 多环境编译
  • WebSockets 在实时通信中的应用与优化
  • H3C-W2000-G2【透明反代理】
  • 【Linux网络篇】:Socket网络套接字以及简单的UDP网络程序编写
  • 【如何做好一份技术文档?】用Javadoc与PlantUML构建高质量技术文档(API文档自动化部署)