axios上傳圖片

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>
相關文章
相關標籤/搜索