前端GET/POST请求下载文件多种方式
创始人
2025-01-15 06:07:55
0

下载post

export const download = (data, projectId) => {   return request({     url: BaseUrl + '/xxx/xxx/xxx',     headers: {       "Project-Id": projectId,       httpWhite: true,     },     responseType: "blob",//文件流     method: 'post',     data   }) }
          下载数据模板  //点击下载 const downloadFile(row){   const params = {     需要传递的参数:'xxxx',     id:row.id,  //示例,   }     download(params, this.projectIds).then((res) => {     if (res.status === 200) {       this.downloadDataTemplate(res);     }   }); }  //下载数据模板 downloadDataTemplate(res) {   if (!res.data) {     return;   }   const fileName = decodeURIComponent(     res.headers["content-disposition"].split("filename=")[1]   );   const blob = new Blob([res.data], {     type: "application/vnd.openxmlformats-  officedocument.spreadsheetml.sheet;charset=utf-8",   });   const downloadElement = document.createElement("a");   const href = window.URL.createObjectURL(blob); // 创建下载的链接   downloadElement.href = href;   // 文件名中有中文 则对文件名进行转码   downloadElement.download = fileName; // 下载后文件名   document.body.appendChild(downloadElement);   downloadElement.click(); // 点击下载   document.body.removeChild(downloadElement); // 下载完成移除元素   window.URL.revokeObjectURL(href); // 释放blob对象 }, 

Get下载方法

通用get下载方法 99%可以使用
const downError = `BaseUrl+/xxx/xxx/xxxx?${this.tokenHeader}=${getToken()}&projectId=${this.projectId}&spaceId=${this.spaceId}`;  window.open(downError, "_self");//调用window方法
特殊get下载方法 1%才能用到 一般用不到 (仅用于个人记录)

这种使用于需要在hearder里面添加projecrt-Id等参数 一般的都不需要 主要看后端接口能不能使用

使用下面这种方法 最主要get下载的请求 是responseType:blob 文件流

export const exportPersonnel = (params) => request({   url: BaseUrl + '/exportxxx/xxxx',   headers: {     "Project-Id": params.projectId,   },   method: 'get',   responseType: 'blob',		//文件流方法   params, })
// 导出 exportcustomer() {   let downStr = { ...this.params };   exportPersonnel(downStr).then((r) => {     if (r.status === 200) {       //获取下载文件名        const fileName = decodeURIComponent(         r.headers["content-disposition"].split("filename=")[1]       );       // 创建 a 元素       const link = document.createElement('a');       const href = window.URL.createObjectURL(r.data)//创建下载链接       link.href = href;// 设置下载链接的 URL       link.style.display = "none";        link.download = fileName; // 下载后文件名       document.body.appendChild(link);       link.click(); // 点击下载       document.body.removeChild(link); // 下载完成移除元素       window.URL.revokeObjectURL(href); // 释放blob对象     }   }); },

相关内容

热门资讯

必备了解!大菠萝挂机辅助(辅助... 必备了解!大菠萝挂机辅助(辅助)大金牙麻将真是存在有辅助挂(哔哩哔哩)1、大菠萝挂机辅助辅助器安装包...
曝光了解!微乐小程序辅助脚本(... 曝光了解!微乐小程序辅助脚本(辅助)休闲利趣本来真的是有辅助平台(哔哩哔哩)1、微乐小程序辅助脚本透...
有挂了解!小程序蜀山西川血战辅... 有挂了解!小程序蜀山西川血战辅助(辅助)全友本来是有辅助平台(哔哩哔哩)1、任何小程序蜀山西川血战辅...
专业了解!丰城呱呱辅助器(辅助... 专业了解!丰城呱呱辅助器(辅助)金娱其实存在有辅助挂(哔哩哔哩)1、在丰城呱呱辅助器插件功能辅助器技...
揭露了解!宝宝浙江辅助工具(辅... 揭露了解!宝宝浙江辅助工具(辅助)星空棋牌其实真的是有辅助平台(哔哩哔哩)一、宝宝浙江辅助工具可以开...
普及了解!相约十三水辅助器下载... 普及了解!相约十三水辅助器下载(辅助)微乐龙江麻将本来真的有辅助安装(哔哩哔哩)1、超多福利:超高返...
详细了解!随意玩透视辅助软件(... 详细了解!随意玩透视辅助软件(辅助)三哥玩总是真的是有辅助平台(哔哩哔哩)1、随意玩透视辅助软件公共...
关于了解!指尖四川小程序辅助(... 关于了解!指尖四川小程序辅助(辅助)鑫牛元帅本来真的有辅助修改器(哔哩哔哩)1.指尖四川小程序辅助 ...
解迷了解!战神辅助众包(辅助)... 解迷了解!战神辅助众包(辅助)人海大厅确实真的是有辅助app(哔哩哔哩)1、战神辅助众包透视辅助软件...
揭幕了解!微信小程序辅助软件有... 揭幕了解!微信小程序辅助软件有哪些(辅助)捉鸡三缺一果然真的有辅助修改器(哔哩哔哩)1、每一步都需要...