首頁  >  文章  >  web前端  >  vue.js圖片如何轉Base64上傳圖片並預覽

vue.js圖片如何轉Base64上傳圖片並預覽

不言
不言原創
2018-08-01 17:26:262863瀏覽

這篇文章要跟大家介紹的內容是關於vue.js圖片如何轉Base64上傳圖片並預覽,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

對於前端人員來說,圖片處理是一個很常見的需求,由於圖片稍微特殊,現在多數做法都是使用調用ajax接口通過http方法來提交,例如post方法提交,後台處理後返回一個圖片路徑給前端,前端根據這個路徑寫入img標籤,但是基於當前的前後端分離的開發模式下,前後端程式碼往往不在同一個系統目錄下,而且部署時可能liunx路徑與windows路徑不一樣,這樣後期路徑更改可能會導致維護困難問題出現。

針對這種問題,這裡我推薦使用圖片轉base64格式,再發給後端,後端只需將轉碼結果存入資料庫即可,前端呼叫介面直接取得到base64資料直接寫入img src 標籤即可

下面使用element ui upload元件實作想法

程式碼如下:

  <el-upload
      ref=&#39;upload&#39;
      :auto-upload=&#39;false&#39; 
      :file-list="fileList" 
      :multiple=&#39;false&#39;
      :limit="1"
      :on-exceed="handleExceed"
      :http-request="uploadFiles" 
      accept="image/jpeg,image/gif,image/png"
      action=&#39;&#39;
      :on-change=&#39;changeUpload&#39;           
      >
    <el-button slot="trigger" size="mini" type="primary">选取图片</el-button>
    <span> </span>
    <el-button @click=&#39;uploadFiles&#39; size="mini" type="primary">点击上传</el-button>
 </el-upload>

js部分

    //点击上传图片,上传成功返回图片路径 
    uploadFiles(){
        var That=this;
      let file=this.$refs.upload.$refs['upload-inner'].$refs.input; //获取文件数据
      let fileList=file.files;      
      var imgFile;
      let reader = new FileReader();     //html5读文件
      reader.readAsDataURL(fileList[0]); //转BASE64       
      reader.onload=function(e) {        //读取完毕后调用接口
        imgFile = e.target.result;
        let obj={
            id: "loginLogo",
            configGroup: "logo",
            configItem : "loginLogo",
          itemValue : imgFile    
        }
        return BaseApi.uploadFiles(obj).then((res)=>{
            if(res.status=='SUCCESS'){
                AlertBox('图片上传成功!','success',true).then(()=>{
                    return That.getSysLogo(); //调用获取base64数据接口
                });
            }else{
                Alert('图片上传失败',res);
                return ''
            }
        })

      };          
    },

最後在介面img src標籤中綁定That.getSysLogo()介面回傳的base64字串即可!
相關文章推薦:

vue中如何定義全域變數和全域方法? (程式碼)

vue元件如何掛載到全域? Vue元件掛載到全域的方法介紹(程式碼)

#

以上是vue.js圖片如何轉Base64上傳圖片並預覽的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn