/**
* 常规文件上传
*/
import axios from 'axios';
import { baseUrl } from '@/config/index'
import store from '@/store/index'
const upload = axios.create({
baseURL: baseUrl, //服务器地址
headers: {
'Content-Type': 'multipart/form-data', // 设置为文件类型
Authorization: store.state.utils.token,
appId: store.state.utils.appId
},
})
upload.interceptors.request.use(config => {
// 如果有token类似的,就加类似代码
// const token = localStorage.getItem('token')
// if (token) {
// config.headers['Authorization'] = 'Bearer ' + token
// }
return config
}, error => {
return Promise.reject(error)
})
/**
* 文件上传
* @param {*} url 路径
* @param {*} params 请求参数
* @param {*} config 其余配置
* @returns
*/
const Upload = function (url,params,config = {}) {
var file = new FormData()
for(let i in params){
file.append(i, params[i])
}
return upload.post(url,file, config)
}
export default Upload
import axios from 'axios'
import {
baseUrl
} from '@/config/index'
import store from '@/store/index'
import {
Message
} from 'element-ui'
import {
downFile
} from '@/utils/download/download'
export const downExcelByPost = function (url, options, name = 'user') {
const token = store.state.utils.token;
const appId = store.state.utils.appId;
return axios({
method: 'POST',
url: `${baseUrl}${url}`,
headers: {
'content-type': 'application/x-www-form-urlencoded',
Authorization: token,
appId: appId
},
params: options || null,
responseType: 'blob'
})
.then(res => {
let data = res.data; // 这里后端对文件流做了一层封装,将data指向res.data即可
if (!data) {
return;
}
downFile(`${name}.xlsx`, new Blob([data]));
})
.catch(err => {
Message.error(err);
});
};