zoukankan      html  css  js  c++  java
  • post 下载二进制pdf文件

    vue的axios下载excel时,获取不到Content-Disposition内容,提取文件名

    function postDownload(downloadUrl, params, contentType, callback){
    let headers = {
    'Content-Type': contentType
    };
    axios(
    {
    method: "post",
    url: downloadUrl,
    data: params,
    headers: headers,
    responseType: "blob", // 指定获取数据的类型为blob
    }
    ).then(
    function (response) {
    console.log(response);
    // 前提是服务端要在header设置Access-Control-Expose-Headers: Content-Disposition
    // 前端才能正常获取到Content-Disposition内容
    const disposition = response.headers['content-disposition'];
    let fileName = disposition.substring(disposition.indexOf('filename=') + 9, disposition.length);
    // iso8859-1的字符转换成中文
    fileName = decodeURI(escape(fileName));
    // 去掉双引号
    fileName = fileName.replace(/"/g, "");
    const content = response.data;
    console.info("rep:", disposition);
    console.info("fileName:", fileName);
    // 创建a标签并点击, 即触发下载
    let url = window.URL.createObjectURL(new Blob([content]));
    let link = document.createElement("a");
    link.style.display = "none";
    link.href = url;
    link.setAttribute("download", fileName);
    //link.download = "测试下载文件.xls"
    // 模拟
    document.body.appendChild(link);
    link.click();
    // 释放URL 对象
    window.URL.revokeObjectURL(link.href);
    document.body.removeChild(link)
    }
    ).catch(function (err) {
    console.log(err)
    })
    }
    这个语句获取不到

    const disposition = response.headers['content-disposition'];
    最后找到了解决方法:
    只需要在服务器端返回response的header里面设置

    Access-Control-Expose-Headers: Content-Disposition
    ————————————————
    版权声明:本文为CSDN博主「不屑哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fuck487/article/details/105122538/

  • 相关阅读:
    超宽带技术的定位原理(转载)
    今日学习——2019年4月8日
    解答室内定位技术新方向:蓝牙AoA定位,值得了解 ——概念了解
    LED室内定位算法:RSS,TOA,AOA,TDOA(转载)
    关于值类型、引用类型以及“栈”跟“堆”的关系——转载自菜鸟教程
    华为liteos了解(一)
    物联网的概念
    c语言——字符串
    指针的操作 p*++
    在完成端口中使用GetAcceptExSockaddrs
  • 原文地址:https://www.cnblogs.com/wsj1/p/14524212.html
Copyright © 2011-2022 走看看