vue 圖片上傳功能

來源:互聯網
上載者:User

標籤:上傳   img   relative   .post   accept   oar   image   art   details   

 

這次做了vue頁面的圖片上傳功能,不帶裁剪功能的!

 

首先是html代碼,在input框上添加change事件,如下:

 

  1.  <ul class="clearfix">
  2.  <li v-if="imgs.length>0" v-for=‘(item ,index ) in imgs‘>
  3.  <img :src="item">
  4.  </li>
  5.  <li style="position:relative" v-if="imgs.length>=6 ? false : true">
  6.  <img src="../../assets/img/addimg.png"><input class="upload" @change=‘add_img‘ type="file">
  7.  </li>
  8.  </ul>
我這裡做了圖片數量的限制,最多6張。

 

然後是data資料,如下:

 

  1.  data () {
  2.   return {
  3.   imgs: [],
  4.   imgData: {
  5.   accept: ‘image/gif, image/jpeg, image/png, image/jpg‘,
  6.   }
  7.   }
  8.   }
imgs數組是放圖片路徑的,頁面顯示圖片就是迴圈這個數組,imgData是判斷圖片類型的。

 

 

接下來是最重要的methods裡面的方法,具體如下:

 

[html] view plain copy 
  1. <code class="language-html">add_img(event){    
  2.             let reader =new FileReader();  
  3.             let img1=event.target.files[0];  
  4.             let type=img1.type;//檔案的類型,判斷是否是圖片  
  5.             let size=img1.size;//檔案的大小,判斷圖片的大小  
  6.             if(this.imgData.accept.indexOf(type) == -1){  
  7.                 alert(‘請選擇我們支援的圖片格式!‘);  
  8.                 return false;  
  9.             }  
  10.             if(size>3145728){  
  11.                 alert(‘請選擇3M以內的圖片!‘);  
  12.                 return false;  
  13.             }  
  14.             var uri = ‘‘  
  15.             let form = new FormData();   
  16.             form.append(‘file‘,img1,img1.name);  
  17.             this.$http.post(‘/file/upload‘,form,{  
  18.                 headers:{‘Content-Type‘:‘multipart/form-data‘}  
  19.             }).then(response => {  
  20.                 console.log(response.data)  
  21.                 uri = response.data.url  
  22.                 reader.readAsDataURL(img1);  
  23.                 var that=this;  
  24.                 reader.onloadend=function(){  
  25.                     that.imgs.push(uri);  
  26.                 }  
  27.             }).catch(error => {  
  28.                 alert(‘上傳圖片出錯!‘);  
  29.             })      
  30. },</code>  


首先是擷取你選擇的圖片,判斷圖片的類型和大小,然後以form表單的形式提交到後台,後台會返回給你這個圖片的線上路徑,你把後台返回的圖片路徑push到圖片數組裡面就可以了。

 

一般情況下還有刪除圖片的方法,就是把圖片數組裡的那個路徑刪除掉,把資料提交到後台,告訴後台刪除了哪張圖片就可以了。

vue 圖片上傳功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.