mirror of https://github.com/msgbyte/tailchat
refactor: uploadFile
parent
f4dadc7003
commit
d6300c7750
@ -0,0 +1,36 @@
|
|||||||
|
import { request } from '../api/request';
|
||||||
|
|
||||||
|
interface UploadFileOptions {
|
||||||
|
onProgress?: (percent: number, progressEvent: unknown) => void;
|
||||||
|
}
|
||||||
|
interface UploadFileResult {
|
||||||
|
etag: string;
|
||||||
|
path: string;
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传文件
|
||||||
|
*/
|
||||||
|
export async function uploadFile(
|
||||||
|
file: File,
|
||||||
|
options: UploadFileOptions = {}
|
||||||
|
): Promise<UploadFileResult> {
|
||||||
|
const form = new FormData();
|
||||||
|
form.append('file', file);
|
||||||
|
|
||||||
|
const { data } = await request.post('/file/v2/image/upload', form, {
|
||||||
|
onUploadProgress(progressEvent) {
|
||||||
|
if (progressEvent.lengthComputable) {
|
||||||
|
if (typeof options.onProgress === 'function') {
|
||||||
|
options.onProgress(
|
||||||
|
progressEvent.loaded / progressEvent.total,
|
||||||
|
progressEvent
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
Loading…
Reference in New Issue