Compare commits
2 Commits
65bc52b352
...
4f70b13ab7
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f70b13ab7 | |||
| 8c66561605 |
@ -177,54 +177,36 @@ const previewFile = (item) => {
|
|||||||
window.open(item.wjdz);
|
window.open(item.wjdz);
|
||||||
}
|
}
|
||||||
const downloadFile = async (item) => {
|
const downloadFile = async (item) => {
|
||||||
console.log(item);
|
|
||||||
try {
|
try {
|
||||||
const dataList =JSON.parse(item.wjdz)
|
const dataList =JSON.parse(item.wjdz)
|
||||||
if (dataList.length === 0) {
|
if (dataList.length === 0) return proxy.$message.warning('没有文件可下载');
|
||||||
proxy.$message.warning('没有文件可下载');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log(dataList);
|
|
||||||
|
|
||||||
const downloadCount = dataList.length;
|
const downloadCount = dataList.length;
|
||||||
let successCount = 0;
|
let successCount = 0;
|
||||||
let failCount = 0;
|
let failCount = 0;
|
||||||
|
|
||||||
proxy.$message.info(`开始下载${downloadCount}个文件...`);
|
proxy.$message.info(`开始下载${downloadCount}个文件...`);
|
||||||
|
|
||||||
// 并行下载所有文件
|
|
||||||
const downloadPromises = dataList.map(async (fileData, index) => {
|
const downloadPromises = dataList.map(async (fileData, index) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// fileData.url = "http://47.108.232.77:9000/image/2025-01-06/081102a5418e4146beea277d18018e07.jpeg";
|
||||||
// 使用fetch获取文件内容
|
// 使用fetch获取文件内容
|
||||||
const response = await fetch(fileData.url);
|
const downloadUrl = fileData.url.replace(/^https?:\/\/[^/]+/, '/zyminio');
|
||||||
if (!response.ok) {
|
const response = await fetch(downloadUrl);
|
||||||
throw new Error('文件下载失败');
|
if (!response.ok) throw new Error('文件下载失败');
|
||||||
}
|
|
||||||
|
|
||||||
// 将响应转换为Blob对象
|
// 将响应转换为Blob对象
|
||||||
const blob = await response.blob();
|
const blob = await response.blob();
|
||||||
|
|
||||||
// 创建下载链接
|
// 创建下载链接
|
||||||
const downloadLink = document.createElement('a');
|
const downloadLink = document.createElement('a');
|
||||||
downloadLink.href = URL.createObjectURL(blob);
|
downloadLink.href = URL.createObjectURL(blob);
|
||||||
|
|
||||||
// 设置下载文件的名称,避免冲突
|
// 设置下载文件的名称,避免冲突
|
||||||
const fileName = dataList.length > 1
|
const fileName = dataList.length > 1 ? `${item.wjmc}_${index + 1}` : item.wjmc;
|
||||||
? `${item.wjmc}_${index + 1}`
|
|
||||||
: item.wjmc;
|
|
||||||
downloadLink.download = fileName;
|
downloadLink.download = fileName;
|
||||||
|
|
||||||
// 触发下载
|
// 触发下载
|
||||||
document.body.appendChild(downloadLink);
|
document.body.appendChild(downloadLink);
|
||||||
downloadLink.click();
|
downloadLink.click();
|
||||||
|
|
||||||
// 清理
|
// 清理
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
document.body.removeChild(downloadLink);
|
document.body.removeChild(downloadLink);
|
||||||
URL.revokeObjectURL(downloadLink.href);
|
URL.revokeObjectURL(downloadLink.href);
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
successCount++;
|
successCount++;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`文件${index + 1}下载失败:`, error);
|
console.error(`文件${index + 1}下载失败:`, error);
|
||||||
|
|||||||
Reference in New Issue
Block a user