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 }) }