文章来自:
https://zhuanlan.zhihu.com/p/120834588
其中,前后端分离传送文件的逻辑:
1、使用 input 标签<input type="file">拾取本地要上传文件
2、前端使用http传送文件,文件以FormData为载体,Content-Type选择为multipart/form-data
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.post('/Instrument/Inserts', f_all,{headers: {'Content-Type': 'multipart/form-data'}})
补充:
Content-Type: application/json : 请求体中的数据会以json字符串的形式发送到后端
Content-Type: application/x-www-form-urlencoded:请求体中的数据会以普通表单形式(键值对)发送到后端
Content-Type: multipart/form-data: 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
3、后端接收并解析FormData
注意事项:前后端分离项目传递文件时,一定要考虑到网速及负载问题,造成文件上传长时间pending,导致失败。