| 12345678910111213141516171819202122232425262728293031323334353637 | import { upload } from '@/service/base'type ImageUploadParams = {  file: File  onProgressCallback: (progress: number) => void  onSuccessCallback: (res: { id: string }) => void  onErrorCallback: () => void}type ImageUpload = (v: ImageUploadParams, isPublic?: boolean, url?: string) => voidexport const imageUpload: ImageUpload = ({  file,  onProgressCallback,  onSuccessCallback,  onErrorCallback,}, isPublic, url) => {  const formData = new FormData()  formData.append('file', file)  const onProgress = (e: ProgressEvent) => {    if (e.lengthComputable) {      const percent = Math.floor(e.loaded / e.total * 100)      onProgressCallback(percent)    }  }  upload({    xhr: new XMLHttpRequest(),    data: formData,    onprogress: onProgress,  }, isPublic, url)    .then((res: { id: string }) => {      onSuccessCallback(res)    })    .catch(() => {      onErrorCallback()    })}
 |