mcwl-pc/app/utils/uploadImg.ts

66 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import type { ApiResponse } from '~/types/api'
/**
* 分批次上传图片
* @param {File[]} files - 需要上传的图片文件数组
* @param {string} url - 上传接口的 URL
* @param {number} batchSize - 每批次上传的文件数量(默认为 3
* @returns {Promise<{ success: boolean, message: string, data: any[] }>} - 返回上传结果
*/
export async function uploadImagesInBatches(files: File[], batchSize = 3) {
const uploadResults = []
for (let i = 0; i < files.length; i++) {
const file = files[i]
// 创建 FormData 对象
const formData = new FormData()
formData.append('file', file) // 假设后端接收字段是 `file`
// 上传当前图片
try {
const res = await request.post<ApiResponse<{ url: string }>>('/file/imgUpload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
// const res = await mallProductFile(formData)
if (res && res.code === 200) {
uploadResults.push(res.data)
}
}
catch (error) {
throw new Error(`上传第 ${i + 1} 张图片失败!`);
}
}
return uploadResults
}
export async function uploadFileBatches(files, batchSize = 3) {
const uploadResults = []
for (let i = 0; i < files.length; i++) {
const file = files[i]
// 创建 FormData 对象
const formData = new FormData()
formData.append('file', file) // 假设后端接收字段是 `file`
// 上传当前图片
try {
const res = await request.post<ApiResponse<{ url: string }>>('/file/fileUpload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
})
// const res = await mallProductFile(formData)
uploadResults.push(res.data)
}
catch (error) {
console.error(`文件上传失败: ${file.name}`, error)
uploadResults.push({ success: false, error })
}
}
return uploadResults
}