86 lines
1.8 KiB
JavaScript
86 lines
1.8 KiB
JavaScript
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
|
|
})
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|