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

网站后缀是nl是哪个国家wordpress中文字体插件

网站后缀是nl是哪个国家,wordpress中文字体插件,外贸网站建设内容包括,广告设计网址后端接口返回 Blob 数据流下载 Excel 文件流程 📌 前提条件: 后端返回的是一个 Excel 文件流(Blob)你的接口请求使用了 axios 🔁 步骤 1:设置请求响应类型为 Blob 在发起请求时,配置 respon…

后端接口返回 Blob 数据流下载 Excel 文件流程

📌 前提条件:

  • 后端返回的是一个 Excel 文件流(Blob)
  • 你的接口请求使用了 axios 

🔁 步骤 1:设置请求响应类型为 Blob
在发起请求时,配置 responseType: 'blob',确保后端返回的数据以二进制流形式接收。示例(以 Axios 为例):

axios.get('/api/download-excel', {params: {},responseType: 'blob'
})

🧾 步骤 2:将响应数据转换为 Blob 对象
接收到响应后,用 new Blob() 封装二进制数据,并指定文件类型为 Excel 格式:

const blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
});
  • res.data:就是后端返回的原始二进制数据
  • type:指定为 Excel 的 MIME 类型(推荐)

 

🔗 步骤 3:创建临时下载链接
通过 URL.createObjectURL() 创建指向 Blob 的临时链接:

const downloadUrl = window.URL.createObjectURL(blob);

这个链接是浏览器内部生成的,不会真正请求服务器。 

📥 步骤 4:创建 <a> 标签并模拟点击
动态生成 <a> 标签,设置 href 为临时链接,添加 download 属性指定文件名,并模拟点击:

const link = document.createElement('a');
link.href = downloadUrl;
link.download = 'data.xlsx';
document.body.appendChild(link);
link.click();

🧹 步骤 5 & 6:清理内存中的对象 URL 和移除 <a> 标签
使用 URL.revokeObjectURL() 清理内存,避免资源泄漏:

window.URL.revokeObjectURL(downloadUrl); // 清理对象 URL
document.body.removeChild(link); // 移除 <a> 标签

完整代码示例

axios.get('/api/download-excel', {params: {},responseType: 'blob'
}).then(res => {const blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;link.download = 'data.xlsx';document.body.appendChild(link);link.click();window.URL.revokeObjectURL(downloadUrl);document.body.removeChild(link);
});

 

🧪 补充说明:如何从响应头获取文件名?

有些后端会在响应头里返回文件名,例如:

Content-Disposition: attachment; filename="预充值记录-20240710.xlsx"

你可以提取出来作为下载文件名:

const disposition = res.headers['content-disposition'];
let filename = '预充值记录.xlsx';if (disposition && disposition.indexOf('filename=') !== -1) {const matches = /filename="?([^"]+)"?/.exec(disposition);if (matches.length > 1) {filename = decodeURIComponent(matches[1]);}
}

然后传给 download 属性:

link.setAttribute('download', filename);

 

🛠 如果你想统一封装一个下载函数(推荐)

你可以写一个通用函数来处理下载:

function downloadFile(url, method = 'get', data = {}, filename = '文件.xlsx') {return sendPost(url, data, method, {}, {}, {responseType: 'blob'}).then(res => {const blob = new Blob([res.data]);const downloadUrl = window.URL.createObjectURL(blob);const link = document.createElement('a');link.href = downloadUrl;link.setAttribute('download', filename);document.body.appendChild(link);link.click();window.URL.revokeObjectURL(downloadUrl);document.body.removeChild(link);});
}

使用示例:

downloadFile('/user/user/prepay/log', 'get', {created_time_start: '2024-07-01',created_time_end: '2024-07-10',excel: true
}, '预充值记录.xlsx');

 

🚫 常见错误排查

错误原因解决方案
下载的是乱码文件没有正确设置 responseType: 'blob'确保设置了
下载失败或空白没处理错误响应(比如 JSON 错误信息被当成了 Blob)加判断是否为 Blob,或统一用 Blob.type 判断
文件名乱码没解码中文文件名使用 decodeURIComponent
内存占用高没调用 revokeObjectURL一定要清理

 

✅ 总结:完整流程图

步骤说明
1️⃣ responseType: 'blob'请求时配置,接收二进制数据
2️⃣ new Blob([res.data])创建 Blob 对象
3️⃣ URL.createObjectURL(blob)创建临时下载链接
4️⃣ 创建 <a> 标签并点击触发浏览器下载行为
5️⃣ URL.revokeObjectURL()清理内存
6️⃣ removeChild(link)移除动态创建的标签

 


文章转载自:

http://exHY1dDd.tqsnd.cn
http://MWSL8KhW.tqsnd.cn
http://Wn5C2cnA.tqsnd.cn
http://tapAJNtU.tqsnd.cn
http://HcHWgfpu.tqsnd.cn
http://qK58jh3I.tqsnd.cn
http://3sPkkeFO.tqsnd.cn
http://bNmhbFhj.tqsnd.cn
http://9AGm5snM.tqsnd.cn
http://mrrwrvby.tqsnd.cn
http://K41TmWJs.tqsnd.cn
http://KSSBz7qO.tqsnd.cn
http://L8dUKfiQ.tqsnd.cn
http://VdZs1eYM.tqsnd.cn
http://Ogj3Z9Wp.tqsnd.cn
http://XJ4NncDr.tqsnd.cn
http://8pCwHB2W.tqsnd.cn
http://r16v8w3w.tqsnd.cn
http://r01FVIuV.tqsnd.cn
http://zQ03SjpL.tqsnd.cn
http://0bHJqVei.tqsnd.cn
http://JRTl7ANH.tqsnd.cn
http://FyCDIiVd.tqsnd.cn
http://9GGZa1Vz.tqsnd.cn
http://68U19NFl.tqsnd.cn
http://KjEtXOGN.tqsnd.cn
http://iIvG4ovv.tqsnd.cn
http://6C0bVAPs.tqsnd.cn
http://XcHHu5Bf.tqsnd.cn
http://lGLifABi.tqsnd.cn
http://www.dtcms.com/wzjs/686621.html

相关文章:

  • 做商业网站需要注册公司吗淮安营销型网站建设
  • 网站制作公司网站源码营销网站建设工作
  • 成都市住房与城乡建设厅网站wordpress新建页面有什么作用
  • 动态效果网站建设技术微信小程序后台管理系统
  • 建立网站买空间哪家好电脑制作网站用哪个软件
  • 前端网站建设和维护深圳外贸建站网络推广联客易
  • 建设部网站 注册违规西安seo搜推宝
  • 国外扁平化风格网站一般纳税人网站建设多少税率
  • 瓜子二手车网站开发wordpress自动刷新2次
  • 万州网站推广自己用模板做网站
  • 网站自定义链接怎么做wordpress显示全英文
  • 单品网站模板青岛微网站建设
  • 适合ps做图的素材网站wordpress怎么二次开发
  • 深圳企业网站建设服务平台网站建设销售招聘
  • 局域网建设网站如何访问dedecms做的网站网站中的图片总是被同一ip恶意点击
  • 深圳宝安医院的网站建设如何让网站gzip
  • 国外高校实验室网站建设成果广播电视网站建设
  • 建站网站模板广东恒力建设工程有限公司网站
  • 重庆网站快速排名优化网站重定向怎么做
  • 打代码做网站的软件电脑网页视频如何下载
  • 刷网站排名软件wordpress主题调用插件
  • 企业网站 案例wordpress可以做外贸
  • 网站设计一般用什么软件成都企业网站优化服务
  • 新华书店的做的数字阅读网站国内永久免费网络游戏推荐
  • 杭州app网站设计沈阳网站网页
  • 长安城乡建设开发有限公司网站seo外链优化培训
  • 中山营销型网站设计万网官网入口
  • 界面简洁的网站正规的培训行业网站开发
  • 兴宁网站建设设计什么是电子商务网站
  • 广州公司网站建设公司微企点建站平台介绍