vue.js 上傳圖片

最近愛上了用vue.js做前端,昨天用vue上傳圖片時遇到了問題,最后半天時間終于摸索出來,我將相關部分的代碼貼出來。

前端部分
<div class="form-group">
        <label>背景圖</label>
        <input type="file" class="form-control" @change="onFileChange">
 </div>
<div class="form-group" v-if="image">
        <label>背景圖預覽</label>
        ![](image)
</div>
vue.js部分

在methods里添加

onFileChange(e) {
   var files = e.target.files || e.dataTransfer.files;
   if (!files.length)
      return;
      this.createImage(files[0]);
   },
createImage(file) {
   var image = new Image();
   var reader = new FileReader();
   var vm = this;

   reader.onload = (e) => {
        vm.image = e.target.result;
   };
       reader.readAsDataURL(file);
},

那么提交時如何獲取呢?
在提交的方法里,通過 this.image 即可,獲取的圖片格式是圖片流格式,以

data:image

開頭。

如何在后端(我用php)獲取呢?

直接貼代碼

$bg = $request->get('image');//獲取圖片流
$url = explode(',',$bg);
$filename = md5(time().str_random(8)).'.png';//自定義圖片名
$filepath = public_path('image').'/'.$filename;//圖片存儲路徑
$bgurl = '/image/'.$filename;//圖片url ,具體看自己后臺環境,我用的是laravel
file_put_contents($filepath, base64_decode($url[1]));//保存圖片到自定義的路徑

將$bgurl保存在數據庫即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容