vue2.0 使用axios提交form表单,为什么 上传文件格式的内容时是空的?
主要是input[type='file']这里的内容时空的
<div class="subForm">
<el-form :model="waterForm" :rules="rules" ref="waterForm" label-width="6rem">
<el-form-item label="产品分类">
<el-select v-model="waterForm.sec" placeholder="请选择" prop="sec">
<el-option key="water" label="生态净水剂系列" value="water"></el-option>
<el-option key="film" label="工业膜系列产品" value="film"></el-option>
<el-option key="dete" label="实时在线检测产品" value="dete"></el-option>
</el-select>
</el-form-item>
<el-form-item label="净水机型号" prop="name">
<el-input v-model="waterForm.name"></el-input>
</el-form-item>
<el-form-item label="简介" prop="jj">
<el-input type="textarea" v-model="waterForm.jj"></el-input>
</el-form-item>
<el-form-item label="图片上传" prop="pic">
<input type="file" @change="getFile($event)"></input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit($event)">提交</el-button>
</el-form-item>
</el-form>
</div>
<script>
export default {
data() {
return {
waterForm: {
name: '',
sec: '',
jj: '',
file: ''
},
rules: {
sec : [
{ required: true, message: '请选择产品分类', trigger: 'blur' }
],
name: [
{ required: true, message: '请输入净水剂型号', trigger: 'blur' }
// { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
jj : [
{ required: true, message: '请选择产品简介', trigger: 'blur' }
],
pic : [
{ required: true, message: '请上传图片', trigger: 'blur' }
]
}
}
},
methods: {
getFile(event) {
this.waterForm.file = event.target.files[0];
},
onSubmit(event) {
event.preventDefault();
let formData = JSON.stringify(this.waterForm);
console.log(formData);//这里的内容在下面
this.$http.post('', formData).then(function (res) {
if (res.status === 2000) {
/*这里做处理*/
}
})
}
}
}
</script>
表单输入
浏览器控制台输出
file里面是空的 没有内容
浏览器控制台输出的formData是这样的,是对的吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没设置上传的headr吧,,上传图片要用formData上传,不要用JSON转字符串,后台接不到的, post的formData后要加{headers:{'Content-Type':'multipart/form-data'}},还有html中要有form
您这边问题解决了吗? 我也是卡到了这里