Browse Source

修改下载方法

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

82
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')
let filename = fileName
if (!fileName) {
filename = url.substring(url.lastIndexOf('/') + 1);
} }
console.log(filename,'filename') if (typeof window.navigator.msSaveBlob !== 'undefined') {
return fetch(url, { window.navigator.msSaveBlob(new Blob([data]), fileName);
method: 'GET', } else {
cache: 'no-cache', let url = window.URL.createObjectURL(new Blob([data]));
headers:{ let link = document.createElement('a');
Authorization: `Bearer ${getToken()}`, link.style.display = 'none';
// clientId: clientId, link.href = url;
}, link.setAttribute('download', fileName);
document.body.appendChild(link);
}).then(res => { link.click();
const fileStream = streamSaver.createWriteStream(filename,{ document.body.removeChild(link); //下载完成移除元素
//增加小视图,体现下载进度条与总大小 window.URL.revokeObjectURL(url); //释放掉blob对象window.btoa(unescape(encodeURIComponent('我是一段需要处理的字符')))
size : res.headers.get("content-length")
})
const readableStream = res.body
if (window.WritableStream && readableStream.pipeTo) {
return readableStream.pipeTo(fileStream)
} }
window.writer = fileStream.getWriter() });
const reader = res.body.getReader() // console.log(apiUrl ,url,'previewUrl')
const pump = () => reader.read() // let filename = fileName
.then(res => res.done // if (!fileName) {
? window.writer.close() // filename = url.substring(url.lastIndexOf('/') + 1);
: window.writer.write(res.value).then(pump)) // }
pump() // console.log(filename,'filename')
}) // return fetch(url, {
// method: 'GET',
// cache: 'no-cache',
// headers:{
// Authorization: `Bearer ${getToken()}`,
// // clientId: clientId,
// },
// }).then(res => {
// const fileStream = streamSaver.createWriteStream(filename,{
// //增加小视图,体现下载进度条与总大小
// size : res.headers.get("content-length")
// })
// const readableStream = res.body
// if (window.WritableStream && readableStream.pipeTo) {
// return readableStream.pipeTo(fileStream)
// }
// window.writer = fileStream.getWriter()
// const reader = res.body.getReader()
// const pump = () => reader.read()
// .then(res => res.done
// ? window.writer.close()
// : window.writer.write(res.value).then(pump))
// pump()
// })
} }
/** /**
* excel导出 * excel导出

Loading…
Cancel
Save