90 lines
2.2 KiB
TypeScript
90 lines
2.2 KiB
TypeScript
import createAxios from '@/utils/request'
|
||
import { ElMessage } from 'element-plus'
|
||
const SYSTEM_PREFIX = '/system-boot'
|
||
|
||
/**
|
||
* 上传文件
|
||
* @param file
|
||
*/
|
||
export const uploadFile = (file: any, path: string) => {
|
||
const regex = /\[|\]/g
|
||
// 替换规则:[ 换成 (,] 换成 )
|
||
|
||
const newFile = new File(
|
||
[file], // 原文件的二进制内容
|
||
file.name.replace(regex, match => (match === '[' ? '(' : ')')), // 新的文件名
|
||
{
|
||
type: file.type, // 复用原文件的MIME类型
|
||
lastModified: file.lastModified // 复用最后修改时间
|
||
}
|
||
)
|
||
|
||
let form = new FormData()
|
||
form.append('file', newFile)
|
||
form.append('path', path)
|
||
return createAxios({
|
||
url: SYSTEM_PREFIX + '/file/upload',
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'multipart/form-data'
|
||
},
|
||
data: form
|
||
}).then(res => {
|
||
if (res.code == `A0000`) {
|
||
ElMessage.success('文件上传成功!')
|
||
return res
|
||
}
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 删除文件
|
||
*/
|
||
export const deleteFile = (filePath: string) => {
|
||
let form = new FormData()
|
||
form.append('filePath', filePath)
|
||
return createAxios({
|
||
url: SYSTEM_PREFIX + '/file/delete',
|
||
method: 'POST',
|
||
data: form
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 下载文件
|
||
*/
|
||
export const downloadFile = (filePath: any) => {
|
||
// let form = new FormData()
|
||
// form.append('filePath', filePath)
|
||
return createAxios({
|
||
url: SYSTEM_PREFIX + '/file/download',
|
||
method: 'GET',
|
||
params: filePath,
|
||
responseType: 'blob'
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 获取文件的短期url展示
|
||
*/
|
||
export const getFileUrl = (params: any) => {
|
||
let form = new FormData()
|
||
// form.append('filePath', filePath)
|
||
return createAxios({
|
||
url: SYSTEM_PREFIX + '/file/getFileUrl',
|
||
method: 'get',
|
||
params
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 根据获取文件的一个短期url及文件名
|
||
*/
|
||
export const getFileNameAndFilePath = (query: any) => {
|
||
return createAxios({
|
||
url: SYSTEM_PREFIX + '/file/getFileVO',
|
||
method: 'GET',
|
||
params: query
|
||
})
|
||
}
|