今天拿到这么一个接口,第一时间有点懵,因为项目涉及到上传文件之类的一直用的是组件库的upload组件去上传,但是这次需要手动去请求,一直上网搜索如何把文件转为二进制去上传,试了好几次都是失败的,终于找到了答案,这里记录下。
参考组件的upload上传参数,可以看到是这样的:
ok,根据这两个,我们去调整axios请求方式
export const shopCostRecordImport= (params, data) => { return axios({
method: 'post',
url: `****`,
params,
data,
headers: {
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq'
}
}).then(res => res.data) };
其中,要调整content-type
,以及对data
数据做处理
const formData = new FormData();
formData.append("file", this.fileList[0].originFileObj) // 这里填入你的file文件对象
let params = {
month: moment(this.importMonth).format("YYYY-MM"),
platformId: this.importPlatformId
};
const res = await shopCostRecordImport(params, formData)
这样就可以啦!
总结
- content-type设置为:
'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq'
- 数据要通过FormData去处理