html部分,能夠把input file的opacity設置爲0,點擊其父容器,即觸發filecss
<input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update($event)"/>
axios的post請求,發送form數據部分,這樣就能夠無刷新的提交form數據到後臺html
update(e){ let file = e.target.files[0]; let param = new FormData(); //建立form對象 param.append('tweetPic',file,file.name);//經過append向form對象添加數據 //param.append('chunk','0');//添加form表單中其餘數據 //console.log(param.get('tweetPic')); //FormData私有類對象,訪問不到,能夠經過get判斷值是否傳進去 let config = { headers:{'Content-Type':'multipart/form-data'} }; //添加請求頭 axios.post('url/',param,config) .then(response=>{ console.log(response.data); }) }
【擴展】vue
使用form表單上傳圖片ios
<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>