• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Vue如何实现从response读取流下载

    发布者: 涵韵 | 发布时间: 2025-6-16 07:38| 查看数: 114| 评论数: 0|帖子模式

    Vue从response读取流下载


    1、创建公共方法
    1. /**
    2. * 从response读取流下载
    3. * @param response 响应体
    4. * @param suffix 文件后缀名
    5. */
    6. function downloadBlob(response,suffix){

    7.   let fileName = new Date().getTime()+"_"+suffix+'.xlsx'
    8.   let blob = new Blob([response]);//response.data为后端传的流文件
    9.   let url = window.URL.createObjectURL(blob);
    10.   let downloadElement = document.createElement("a");
    11.   downloadElement.style.display = "none";
    12.   downloadElement.href = url;
    13.   downloadElement.download = fileName;
    14.   document.body.appendChild(downloadElement);
    15.   downloadElement.click();
    16.   document.body.removeChild(downloadElement);
    17.   window.URL.revokeObjectURL(url);
    18. }

    19. export default {
    20.   downloadBlob
    21. }
    复制代码
    2、挂载到Vue原型上
    1. import blob from '@/utils/blob'
    2. Vue.prototype.$blob = blob
    复制代码
    3、使用
    1. /** 导出按钮操作 */
    2.     handleExport() {
    3.       this.$confirm('是否导出所有数据?', "警告", {
    4.           confirmButtonText: "确定",
    5.           cancelButtonText: "取消",
    6.           type: "warning"
    7.         }).then(function() {
    8.           return exportData();
    9.         }).then(response => {
    10.           this.$blob.downloadBlob(response,"数据表")
    11.         }).catch(()=>{})
    12.     }
    复制代码
    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    来源:https://www.jb51.net/javascript/339474vam.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表