41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import request from '@/utils/request'
|
||
|
||
/**
|
||
* 上传文件通用接口
|
||
* @param data File 对象 或 FormData 对象
|
||
* 适配说明:list.vue 中 customUpload 已经封装了 FormData,所以这里支持直接传 FormData
|
||
*/
|
||
export function uploadFile(data: File | FormData) {
|
||
let formData: FormData
|
||
|
||
if (data instanceof FormData) {
|
||
formData = data
|
||
} else {
|
||
// 如果传入的是原始 File 对象,则手动封装
|
||
formData = new FormData()
|
||
// @ts-ignore
|
||
formData.append('file', data)
|
||
}
|
||
|
||
return request({
|
||
// 注意:这里 /v1/common/upload 需要与后端 BluePrint 注册的 url_prefix 对应
|
||
url: '/v1/common/upload',
|
||
method: 'post',
|
||
data: formData,
|
||
headers: {
|
||
'Content-Type': 'multipart/form-data'
|
||
}
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 删除文件通用接口 (新增)
|
||
* @param filename 文件名 (例如: a1b2c3d4.jpg)
|
||
*/
|
||
export function deleteFile(filename: string) {
|
||
return request({
|
||
// 对应后端路由: @upload_bp.route('/files/<filename>', methods=['DELETE'])
|
||
url: `/v1/common/files/${filename}`,
|
||
method: 'delete'
|
||
})
|
||
} |