post请求下载文件,"Content-Type": "application/x-www-form-urlencoded",

import axios from "axios";
import qs from "qs";
 if (item.resourceName == "导出") {
        const [startTime = "", endTime = ""] = this.rangeTime || [];
        let params = {
          carNumber: this.carNumber,
          billStatus: this.billStatus,
          userPhone: this.userPhone,
          billCode: this.billCode,
          buildCodeList: this.buildCodeList,
          timeType: this.timeType,
          startTime,
          endTime,
          page: this.page,
          size: this.size,
        };
        axios
          .post(exportReservationList, qs.stringify(params), {
            headers: {
              "Content-Type": "application/x-www-form-urlencoded",
            },
            responseType: "blob",
          })
          .then((response) => {
            // 从响应头中获取文件名
            const contentDisposition = response.headers["content-disposition"];
            console.log("🚀 ~ .then ~ contentDisposition:", contentDisposition);
            const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
            const matches = filenameRegex.exec(contentDisposition);
            let filename = null;
            if (matches != null && matches[1]) {
              filename = decodeURIComponent(matches[1].replace(/['"]/g, ""));
            }

            console.log("文件名:", filename);

            const url = window.URL.createObjectURL(new Blob([response.data])); // 将二进制数据转换为Blob对象的URL
            const link = document.createElement("a");
            link.href = url;
            link.setAttribute("download", filename); // 指定下载文件的文件名
            document.body.appendChild(link);
            link.click(); // 触发下载
            window.URL.revokeObjectURL(url); // 清理URL对象
          })
          .catch((error) => {
            console.log("🚀 ~ showModal ~ error:", error);
            this.$message({
              message: "网络异常,请稍后再试!",
              type: "error",
            });
          });
      }

posted @   崛起崛起  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示