From efff5c8410c9657915eb05615c13c2de7421c61a Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 27 七月 2023 17:38:11 +0800 Subject: [PATCH] 修改文件下载不成功问题 --- Source/UBCS-WEB/src/components/file/main.vue | 30 ++++++++++++++++++++++++++++-- 1 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Source/UBCS-WEB/src/components/file/main.vue b/Source/UBCS-WEB/src/components/file/main.vue index 2391abf..cb4d046 100644 --- a/Source/UBCS-WEB/src/components/file/main.vue +++ b/Source/UBCS-WEB/src/components/file/main.vue @@ -65,6 +65,7 @@ import {mapGetters} from "vuex"; import {dateFormat} from "@/util/date"; import {validatenull} from "@/util/validate"; +import func from "@/util/func"; export default { props: ["options","visible","ownbizOid"], @@ -380,16 +381,41 @@ let data=new FormData(); if(row && row.oid){ data.append('fileOids',row.oid) - download(data) + this.downloadFile(data); }else{ if (this.selectionList.length === 0) { this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); return; } data.append('fileOids',this.oids) - download(data); + this.downloadFile(data); } }, + downloadFile(data){ + download(data).then(res=>{ + // console.log(res); + if(res){ + const fileNames = res.headers['content-disposition'].split(";"); + let characterSet = fileNames[2].split("filename*=")[1]; + let fileName = decodeURI(fileNames[1].split("filename=")[1],characterSet); + // console.log(fileName) + let blob = new Blob([res.data], { + type: res.data.type + ";charset=utf-8", + }); + let src = window.URL.createObjectURL(blob); + if (src) { + let link = document.createElement("a"); + link.style.display = "none"; + link.href = src; + link.setAttribute("download", fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(src); //閲婃斁鎺塨lob瀵硅薄 + } + } + }); + }, rowDel(row) { this.$confirm("纭畾灏嗛�夋嫨鏂囦欢鍒犻櫎?", { confirmButtonText: "纭畾", -- Gitblit v1.9.3