文件下载时下载的原文件名

This commit is contained in:
XaoLi717 2024-09-03 11:15:12 +08:00
parent ce0a7d5156
commit daed5f7c18

View File

@ -36,11 +36,12 @@
<div class="flex items-center"> <div class="flex items-center">
<span>{{ row.file.name }}</span> <span>{{ row.file.name }}</span>
<div class="ml-10px"> <div class="ml-10px">
<!-- :href="row.file.url"-->
<!-- :download = "row.file.name"-->
<el-link <el-link
:href="row.file.url"
:underline="false" :underline="false"
download
target="_blank" target="_blank"
@click="downloadFile(row.file)"
type="primary" type="primary"
> >
下载 下载
@ -72,7 +73,7 @@ const props = defineProps({
fileSize: propTypes.number.def(5), // (MB) fileSize: propTypes.number.def(5), // (MB)
limit: propTypes.number.def(5), // limit: propTypes.number.def(5), //
autoUpload: propTypes.bool.def(true), // autoUpload: propTypes.bool.def(true), //
drag: propTypes.bool.def(false), // drag: propTypes.bool.def(true), //
isShowTip: propTypes.bool.def(true), // isShowTip: propTypes.bool.def(true), //
disabled: propTypes.bool.def(false) // ==> false disabled: propTypes.bool.def(false) // ==> false
}) })
@ -123,6 +124,7 @@ const handleFileSuccess: UploadProps['onSuccess'] = (res: any): void => {
// //
const index = fileList.value.findIndex((item) => item.response?.data === res.data) const index = fileList.value.findIndex((item) => item.response?.data === res.data)
fileList.value.splice(index, 1) fileList.value.splice(index, 1)
console.log("res",res)
/** /**
* 拼接更加明显的特殊字符串来便于切割 * 拼接更加明显的特殊字符串来便于切割
* */ * */
@ -157,6 +159,26 @@ const handleRemove = (file: UploadFile) => {
emitUpdateModelValue2() emitUpdateModelValue2()
} }
} }
const downloadFile = async (file)=> {
//使 fetch API Blob
const response = await fetch(file.url);
// response blob
const blob = await response.blob();
// <a>
const link = document.createElement('a')
// URL Blob
link.href = URL.createObjectURL(blob);
//使
link.download = file.name
//link
document.body.appendChild(link);
//
link.click();
//link
document.body.removeChild(link);
// URL
URL.revokeObjectURL(link.href);
}
const handlePreview: UploadProps['onPreview'] = (uploadFile) => { const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
console.log(uploadFile) console.log(uploadFile)
} }