new-ruoyi-geek/ruoyi-geek-app/api/system/chunkUpload/index.js

86 lines
1.8 KiB
JavaScript
Raw Normal View History

2025-11-17 15:20:25 +00:00
import request from '@/utils/request'
import config from "@/config";
import { getToken } from "@/utils/auth";
/**初始化上传 */
export function initChunkUpload(fileName, fileSize) {
return request({
url: '/file/initUpload',
method: 'post',
params: {
fileName,
fileSize
}
})
}
/**上传分片视频 */
export function uploadChunk(uploadId, filePath, chunkIndex, formattedPath) {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: `${config.baseUrl}/file/uploadChunk`,
filePath: formattedPath,
name: "chunk",
timeout: 60000, // 增加超时时间到60秒
header: {
Authorization: `Bearer ${getToken()}`,
},
formData: {
uploadId: uploadId,
filePath: filePath,
partNumber: chunkIndex,
},
success: (res) => {
try {
const resultData = JSON.parse(res.data);
resolve(resultData);
} catch (error) {
console.error("解析上传结果失败:", error);
reject(error);
}
},
fail: (err) => {
console.error(`分片${chunkIndex}上传请求失败:`, err);
reject(err);
},
});
});
}
/**完成分片上传 */
export function completeChunkUpload(uploadId, filePath, fileSize, fileName, partETags) {
return request({
url: '/file/completeUpload',
method: 'post',
params: {
uploadId,
filePath,
fileSize,
fileName,
},
data: partETags
})
}