接到了一个文件上传的需求,需要使用form上传文件,之前没有这么上传过文件(还是个新手),所以各种碰壁,看到有博客说,可以使用iframe来接收返回值,但是由于iframe只能获取到自己的页面的标签,所以不可行,最后让我找到了通过jquery.form.min.js来获取返回值的方式
action为文件提交地址
项目中需要引入jquery.js和jquery.form.min.js
<form ref="ruleForm" id="ruleForm" :action="uploadUrl" method="post" enctype="multipart/form-data">
<input type="file" multiple class="form-control" name="filename[]" title="批量上传" />
<el-button @click="clickBtn" size="small" type="primary" class="btn-dark">提交</el-button>
</form>
export default {
data () {
return {
uploadUrl: this.$store.state.serverIP + '/api/upload_files'
};
},
clickBtn(){
let options={
//target : '#output', // 把服务器返回的内容放入id为output的元素中
//beforeSubmit : showRequest, // 提交前的回调函数
success : this.showResponse, // 提交后的回调函数
// url : url, //默认是form的action,如果申明,则会覆盖
// type : type, // 默认值是form的method("GET" or "POST"),如果声明,则会覆盖
// dataType : null, // html(默认)、xml、script、json接受服务器端返回的类型
// clearForm : true, // 成功提交后,清除所有表单元素的值
// resetForm : true, // 成功提交后,重置所有表单元素的值
timeout : 3000 // 限制请求的时间
}
// this.$refs.ruleForm.submit()
$("#ruleForm").ajaxSubmit(options);
},
showResponse(responseText,statusText){
//responseText就是后端接口返回的数据了
},