Vue axios 中提交表单数据(含上传文件)
程序员文章站
2023-02-25 13:29:53
我们经常使用表单来上传数据,以及上传文件,那么怎么在表单提交成功的时候接受服务器的响应,并作出相应操作.
当然使用一般jquery上传对象的格式也是可以的,如果使用传...
我们经常使用表单来上传数据,以及上传文件,那么怎么在表单提交成功的时候接受服务器的响应,并作出相应操作.
当然使用一般jquery上传对象的格式也是可以的,如果使用传统的表单上传呢?
<!doctype html> <html lang="en"> <head> <title></title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <form method="post" action="/upload" enctype="multipart/form-data"> <input type="text" name="name" value="" placeholder="请输入用户名"> <input type="text" name="age" value="" placeholder="请输入年龄"> <input type="file" name="uploadfile"> <input type="submit" value="提交"> </form> </body> </html>
这种方式可以提交,那么问题来了,表单提交以后如果需要获取服务器的响应呢,如果需要在响应成功后跳转页面呢,这种方式显得不好处理.
切回正题,在vue中这种简单的表单提交如何处理呢,其实使用的是 formdata 来模拟表单提交
<head> <title></title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://cdn.bootcss.com/vue/2.3.4/vue.js"></script> <script src="https://cdn.bootcss.com/axios/0.16.2/axios.js"></script> </head> <body> <form> <input type="text" value="" v-model="name" placeholder="请输入用户名"> <input type="text" value="" v-model="age" placeholder="请输入年龄"> <input type="file" @change="getfile($event)"> <button @click="submitform($event)">提交</button> </form> <script> window.onload = function () { vue.prototype.$http = axios; new vue({ el: 'form', data: { name: '', age: '', file: '' }, methods: { getfile(event) { this.file = event.target.files[0]; console.log(this.file); }, submitform(event) { event.preventdefault(); let formdata = new formdata(); formdata.append('name', this.name); formdata.append('age', this.age); formdata.append('file', this.file); let config = { headers: { 'content-type': 'multipart/form-data' } } this.$http.post('/upload', formdata, config).then(function (res) { if (res.status === 2000) { /*这里做处理*/ } }) } } }) } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
thinkphp表单上传文件并将文件路径保存到数据库中
-
Asp.Net模拟表单提交数据和上传文件的实现代码
-
Asp.Net模拟表单提交数据和上传文件的实现代码
-
vue axios 表单提交上传图片的实例
-
Vue axios 中提交表单数据(含上传文件)
-
(火狐浏览器)前端以FormData类形成表单(含文件),通过ajax提交,PHP后端iconv()报“文件名含有非法字符”且POST中的‘Ttitle’丢失
-
springboot实现表单提交数据和上传文件或图片
-
Vue axios 中提交表单数据(含上传文件)
-
vue axios 表单提交上传图片的实例
-
thinkphp表单上传文件并将文件路径保存到数据库中_php实例