Browse Source

修改下载方法

master
zhouhaibin 2 months ago
parent
commit
701e991d5e
  1. 84
      src/api/common/api.ts

84
src/api/common/api.ts

@ -67,42 +67,56 @@ export const downloadonlinePreview = async (url, fileName,parameter) =>{
} }
export const downloadResource = async (url, fileName,parameter) =>{ export const downloadResource = async (url, fileName,parameter) =>{
// let originUrl="http://localhost:3100"+apiUrl + url+"?path="+parameter.path+"&fileName="+parameter.fileName return getFileblob(url, parameter).then((data) => {
// let previewUrl = originUrl + "&fullfilename=" + parameter.fileName; //带上文件名(带后缀) if (!data || data.size === 0) {
message.warning('文件下载失败');
// window.open( 'http://218.246.6.173:9002' + "/onlinePreview?url=" + encodeURIComponent(Base64.encode(previewUrl))) return;
url = apiUrl + url+"?path="+encodeURIComponent(parameter.path)+"&fileName="+parameter.fileName }
console.log(apiUrl ,url,'previewUrl') if (typeof window.navigator.msSaveBlob !== 'undefined') {
let filename = fileName window.navigator.msSaveBlob(new Blob([data]), fileName);
if (!fileName) { } else {
filename = url.substring(url.lastIndexOf('/') + 1); let url = window.URL.createObjectURL(new Blob([data]));
} let link = document.createElement('a');
console.log(filename,'filename') link.style.display = 'none';
return fetch(url, { link.href = url;
method: 'GET', link.setAttribute('download', fileName);
cache: 'no-cache', document.body.appendChild(link);
headers:{ link.click();
Authorization: `Bearer ${getToken()}`, document.body.removeChild(link); //下载完成移除元素
// clientId: clientId, window.URL.revokeObjectURL(url); //释放掉blob对象window.btoa(unescape(encodeURIComponent('我是一段需要处理的字符')))
}, }
});
// console.log(apiUrl ,url,'previewUrl')
// let filename = fileName
// if (!fileName) {
// filename = url.substring(url.lastIndexOf('/') + 1);
// }
// console.log(filename,'filename')
// return fetch(url, {
// method: 'GET',
// cache: 'no-cache',
// headers:{
// Authorization: `Bearer ${getToken()}`,
// // clientId: clientId,
// },
}).then(res => { // }).then(res => {
const fileStream = streamSaver.createWriteStream(filename,{ // const fileStream = streamSaver.createWriteStream(filename,{
//增加小视图,体现下载进度条与总大小 // //增加小视图,体现下载进度条与总大小
size : res.headers.get("content-length") // size : res.headers.get("content-length")
}) // })
const readableStream = res.body // const readableStream = res.body
if (window.WritableStream && readableStream.pipeTo) { // if (window.WritableStream && readableStream.pipeTo) {
return readableStream.pipeTo(fileStream) // return readableStream.pipeTo(fileStream)
} // }
window.writer = fileStream.getWriter() // window.writer = fileStream.getWriter()
const reader = res.body.getReader() // const reader = res.body.getReader()
const pump = () => reader.read() // const pump = () => reader.read()
.then(res => res.done // .then(res => res.done
? window.writer.close() // ? window.writer.close()
: window.writer.write(res.value).then(pump)) // : window.writer.write(res.value).then(pump))
pump() // pump()
}) // })
} }
/** /**
* excel导出 * excel导出

Loading…
Cancel
Save