diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue index 9d0a904ee7b27e7abc76b947a1ccfd36b26ac61f..625cd38e9ab67270e63edab53fd6002d90358688 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 2981e12da341275388f04bd21665a32eea0d8c27..6c372067340cae31edfa1bd99efbdc54e5ea47a9 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)