1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| import { getToken } from "@/utils/cache";
| import { ResultCodeEnum } from "@/enums/ResultCodeEnum";
|
| // H5 使用 VITE_APP_BASE_API 作为代理路径,其他平台使用 VITE_APP_API_URL 作为请求路径
| let baseApi = import.meta.env.VITE_APP_API_URL;
| // #ifdef H5
| baseApi = import.meta.env.VITE_APP_BASE_API;
| // #endif
|
| const FileAPI = {
| /**
| * 文件上传地址
| */
| uploadUrl: baseApi + "/api/v1/files",
|
| /**
| * 上传文件
| *
| * @param filePath
| */
| upload(filePath: string): Promise<FileInfo> {
| return new Promise((resolve, reject) => {
| uni.uploadFile({
| url: this.uploadUrl,
| filePath: filePath,
| name: "file",
| header: {
| Authorization: getToken() ? `Bearer ${getToken()}` : "",
| },
| formData: {},
| success: (response) => {
| const resData = JSON.parse(response.data) as ResponseData<FileInfo>;
| // 业务状态码 00000 表示成功
| if (resData.code === ResultCodeEnum.SUCCESS) {
| resolve(resData.data);
| } else {
| // 其他业务处理失败
| uni.showToast({
| title: resData.msg || "文件上传失败",
| icon: "none",
| });
| reject({
| message: resData.msg || "业务处理失败",
| code: resData.code,
| });
| }
| },
| fail: (error) => {
| console.log("fail error", error);
| uni.showToast({
| title: "文件上传请求失败",
| icon: "none",
| duration: 2000,
| });
| reject({
| message: "文件上传请求失败",
| error,
| });
| },
| });
| });
| },
| };
|
| export default FileAPI;
|
| /**
| * 文件API类型声明
| */
| export interface FileInfo {
| /** 文件名 */
| name: string;
| /** 文件路径 */
| url: string;
| }
|
|