bb-plane-fork/space/core/services/file-upload.service.ts

34 lines
816 B
TypeScript

import axios from "axios";
// services
import { APIService } from "@/services/api.service";
export class FileUploadService extends APIService {
private cancelSource: any;
constructor() {
super("");
}
async uploadFile(url: string, data: FormData): Promise<void> {
this.cancelSource = axios.CancelToken.source();
return this.post(url, data, {
headers: {
"Content-Type": "multipart/form-data",
},
cancelToken: this.cancelSource.token,
withCredentials: false,
})
.then((response) => response?.data)
.catch((error) => {
if (axios.isCancel(error)) {
console.log(error.message);
} else {
throw error?.response?.data;
}
});
}
cancelUpload() {
this.cancelSource.cancel("Upload canceled");
}
}