axios+FormData文件上传
原理:FormData上传
创建一个FormData对象,将得到的文件流对象放在FormData内,然后使用axios上传
注意:
1.请求头设置
headers: { 'Content-Type': 'multipart/form-data' }
2.FormData对象
无论是用input type=“file”还是一些框架的上传组件,都可以的到一个file文件流,详见代码展示
代码:
我是使用的是iview的Upload组件
<Upload :before-upload="handleUpload" accept=".rar" :format="['.rar']" :max-size=102400 action="#"> <Button size="small">选择文件</Button> </Upload>
/* 上传文件 */ export const importFile = data => request({ url: '/ktdb/projectAdmission/import', method: 'post', headers: { 'Content-Type': 'multipart/form-data' }, data })
handleUpload (file) { // 创建FormData对象 let param = new FormData() // 将得到的文件流添加到FormData对象 param.append('file', file, file.name) importFile(param).then((res) => { console.log(res) } }
钻研不易,转载请注明出处。。。。。。