办学质量监测教学评价系统
shenrongliang
2025-06-13 11d86cc6c26bb4f709e407acadf4805c2024e79f
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
import type { RequestClient } from '../request-client';
import type { RequestClientConfig } from '../types';
 
class FileUploader {
  private client: RequestClient;
 
  constructor(client: RequestClient) {
    this.client = client;
  }
 
  public async upload<T = any>(
    url: string,
    data: Record<string, any> & { file: Blob | File },
    config?: RequestClientConfig,
  ): Promise<T> {
    const formData = new FormData();
 
    Object.entries(data).forEach(([key, value]) => {
      formData.append(key, value);
    });
 
    const finalConfig: RequestClientConfig = {
      ...config,
      headers: {
        'Content-Type': 'multipart/form-data',
        ...config?.headers,
      },
    };
 
    return this.client.post(url, formData, finalConfig);
  }
}
 
export { FileUploader };