From adddc61dc2b361dc73fc3fe0de3e40893f5b2068 Mon Sep 17 00:00:00 2001 From: smallNorthLee <18210040298@163.com> Date: Sun, 19 Jan 2025 22:44:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=96=87=E4=BB=B6=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/UploadFile/src/UploadFile.vue | 2 +- src/components/UploadFile/src/useUpload.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue index 9d0a904ee..625cd38e9 100644 --- a/src/components/UploadFile/src/UploadFile.vue +++ b/src/components/UploadFile/src/UploadFile.vue @@ -95,7 +95,7 @@ const uploadList = ref([]) const fileList = ref([]) const uploadNumber = ref(0) -const { uploadUrl, httpRequest } = useUpload() +const { uploadUrl, httpRequest } = useUpload(true) // 文件上传之前判断 const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => { diff --git a/src/components/UploadFile/src/useUpload.ts b/src/components/UploadFile/src/useUpload.ts index 2981e12da..6c3720673 100644 --- a/src/components/UploadFile/src/useUpload.ts +++ b/src/components/UploadFile/src/useUpload.ts @@ -9,8 +9,12 @@ import axios from 'axios' export const getUploadUrl = (): string => { return import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL + '/infra/file/upload' } - -export const useUpload = () => { +/** + * 上传文件 + * @param isAutoGenerateFileName 是否自动生成文件名称 + * @returns + */ +export const useUpload = (isAutoGenerateFileName : boolean) => { // 后端上传地址 const uploadUrl = getUploadUrl() // 是否使用前端直连上传 @@ -20,7 +24,7 @@ export const useUpload = () => { // 模式一:前端上传 if (isClientUpload) { // 1.1 生成文件名称 - const fileName = await generateFileName(options.file) + const fileName = isAutoGenerateFileName? await generateFileName(options.file) : options.file.name // 1.2 获取文件预签名地址 const presignedInfo = await FileApi.getFilePresignedUrl(fileName) // 1.3 上传文件(不能使用 ElUpload 的 ajaxUpload 方法的原因:其使用的是 FormData 上传,Minio 不支持) @@ -40,7 +44,7 @@ export const useUpload = () => { // 模式二:后端上传 // 重写 el-upload httpRequest 文件上传成功会走成功的钩子,失败走失败的钩子 return new Promise((resolve, reject) => { - FileApi.updateFile({ file: options.file }) + FileApi.updateFile({ file: options.file,path: isAutoGenerateFileName ? '' :options.file.name }) .then((res) => { if (res.code === 0) { resolve(res) -- Gitee