axios上传文件
vue + element + axios
我用的是element的upload组件,但并未用element的上传只是用的element组件的文件fileList和样式
普通的上传文件是着这样的
var formdata = new FormData() // 创建form对象
formdata.append('file', data.file) // 在form对象添加file文件
const config = {
headers: { 'Content-Type': 'multipart/form-data', 'Access-Token': getToken() }
} // 添加请求头
axios.post(process.env.BASE_API + 'goods/goods/create', formdata, config).then(response => {
console.log(response)
})
然而,创建商品时有多张图片和商品属性价格等等…一次性上传给后端应该怎么做?
var formdata = new FormData() // 创建form对象\
for (let i = 0; i < data.file.length; i++) { // 在form对象添加file文件数组
formdata.append('file[]', data.file[i].raw)
}
const config = {
headers: { 'Content-Type': 'multipart/form-data', 'Access-Token': getToken() }
} // 添加请求头
axios.post(process.env.BASE_API + 'goods/goods/create', formdata, config).then(response => {
console.log(response)
})
上传的数据是这样的; 后台解析会把file的所有的字段当成一个去解析
要点:formdata的file后边加上[ ]后台就会当成数组去解析