激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Laravel框架+Blob實現的多圖上傳功能示例

Laravel框架+Blob實現的多圖上傳功能示例

2019-10-26 15:21谷文杰 PHP教程

這篇文章主要介紹了Laravel框架+Blob實現的多圖上傳功能,結合實例形式詳細分析了Laravel框架+Blob進行多張圖片上傳操作的前端提交與后臺處理相關操作技巧,需要的朋友可以參考下

本文實例講述了Laravel框架+Blob實現的多圖上傳功能。分享給大家供大家參考,具體如下:

一.介紹

我們知道多圖上傳一般都附帶的又即時顯示功能,即上傳后可以立刻看到所傳圖片。之前一直用的一個多圖上傳插件是選擇圖片,點擊上傳然后圖片資源上傳到服務器,然后返回存儲的路徑信息,最后我們點擊表單的提交按鈕后將這些信息插入數據庫。

現在有一個尷尬的地方,當我點擊上傳圖片后,我又取消這次表單提交了。可是圖片資源已經到服務器了,容易造成空間浪費等。

現在提供一個自己結合Laravel框架寫的多圖上傳,(當然,在任何地方都可以直接套用),特點是:圖片上傳后可即時顯示,但是是通過blob調用的瀏覽器緩存圖片信息,當表單提交后,圖片資源才會真正的上傳服務器與數據庫。

二.前端

注:本例基于Laravel框架

先上Form表單

  1. <form method="post" enctype="multipart/form-data" action="#"
  2.   {{csrf_field()}} 
  3.   <ul class="list_btn"
  4.   <li><img id="imgone" class="sz" width="100px" height="100px" src="" style="display: none;"></li> 
  5.    <li> <input type="file" id="house_img_one1" name="art_thumb" multiple="multiple" onchange="houseImgOne(this)"></li> 
  6. </ul> 
  7.   <div class="submit">上傳</div> 
  8. </form> 

JS代碼

  1. <script> 
  2.   var _btnId = ''
  3.   var all_urls=""
  4.   var all_types=""
  5.   function houseImgOne(_this) { 
  6.     var img = '<img class="sz" width="100px" height="100px" src=""  >' 
  7.     _btnId = $(_this).attr('id'); 
  8.     var obj = document.getElementById("house_img_one1"); 
  9.     var length = obj.files.length; 
  10.     //多圖上傳時遍歷文件信息(可以通過object.files查看) 
  11.     for (var i = 0; i < length; i++) { 
  12.       var objUrl = getObjectURL(_this.files[i]); 
  13.       //圖片后綴類型拼接 
  14.       all_types=all_types+_this.files[i].type; 
  15.       //將圖片轉換成base64自字符 
  16.       var oFReader = new FileReader(); 
  17.       oFReader.readAsDataURL(_this.files[i]); 
  18.       oFReader.onload = function (oFREvent) { 
  19.         all_urls=all_urls+oFREvent.target.result+"&|||"//拼接data形式base64的url 
  20.       }; 
  21.       if (objUrl) { 
  22.         $('.sz:last').before(img); 
  23.         $('.sz').eq($(".sz").length - 2).attr("src", objUrl); 
  24.       } 
  25.     } 
  26.   } 
  27.   //點擊提交按鈕觸發ajax 
  28.     $(".submit").click(function(){ 
  29.     //console.log(all_types); 
  30.     $.ajax({ 
  31.       type:"post"
  32.       url:"{{url('admin/img')}}"
  33.       data:{'imgs':all_urls,'types':all_types,'_token':"{{csrf_token()}}"}, 
  34.       dataType:"json"
  35.       success:function(data){ 
  36.         if (data==1){ 
  37.           // layer插件提示,可自行選擇則 
  38.           layer.msg("上傳成功", {icon: 6}); 
  39.           window.location.reload(); 
  40.         }else { 
  41.           alert("上傳失敗!"); 
  42.         } 
  43.       } 
  44.     }); 
  45.   }); 
  46.   //獲取blog對象url(實際獲取的是緩存中的圖片路徑信息,用于即時顯示,并非服務器返回的實際資源路徑) 
  47.   function getObjectURL(file) { 
  48.     var url = null
  49.     if (window.createObjectURL != undefined) { 
  50.       url = window.createObjectURL(file); 
  51.     } else if (window.URL != undefined) { 
  52.       url = window.URL.createObjectURL(file); 
  53.     } else if (window.webkitURL != undefined) { 
  54.       url = window.webkitURL.createObjectURL(file); 
  55.     } 
  56.     return url; 
  57.   } 
  58. </script> 

三.后臺處理代碼

 

  1. public function store(Request $request) 
  2.   $data=$request->all(); 
  3.   $imgs = $data['imgs']; 
  4.   // array_values()用于重置數組下標 
  5.   $types =array_values(array_filter(explode('image/',$data['types']))); 
  6.   $arr=array_values(array_filter(explode('&|||',$imgs))); 
  7.   foreach ($arr as $k => $v){ 
  8.   //文件路徑 
  9.   $filepath = base_path().'/storage/app/imgs/'.date('YmdHis').$k.'.'.$types[$k]; 
  10.   //提取base64字符 
  11.   $imgdata = substr($v,strpos($v,",") + 1); 
  12.   $decodedData = base64_decode($imgdata); 
  13.   file_put_contents($filepath,$decodedData ); 
  14.   //插入數據庫 
  15.   $img = new Img; 
  16.   $filepath = strchr($filepath,'/'); 
  17.   $img->img_path=$filepath; 
  18.   $img->save(); 

 

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一级黄色免费 | 成人免费观看毛片 | 蜜桃视频在线播放 | 九九久久视频 | 日韩精品中文字幕在线观看 | 欧美视频在线一区二区三区 | 久久国产精品久久精品国产演员表 | 曰韩一二三区 | 欧美videofree性欧美另类 | 国产精品久久久在线观看 | 成年人小视频在线观看 | 高清做爰免费无遮网站挡 | 国产在线精品一区二区三区 | 最新在线黄色网址 | 国产日韩线路一线路二 | jizzjizz中国少妇中文 | 亚洲午夜影院在线观看 | 国产精品一区在线观看 | 欧美精品久久久久久久久久 | 午夜激情视频免费 | 欧美日韩在线视频一区 | 天天躁狠狠躁夜躁2020挡不住 | 成人午夜激情网 | 在线观看免费污视频 | 久久视频在线看 | 国产成年人网站 | 亚洲免费看片网站 | 国产一级做a爰片在线看 | 精品一区二区三区免费爱 | 国产精品久久久久久久久久东京 | 欧美一级毛片一级毛片 | 成人午夜在线观看视频 | 一级毛片免费大片 | 91重口视频 | 欧美韩国一区 | 亚洲成人黄色片 | 久久久久久久久久久久久久久伊免 | 九九精品在线观看 | 日韩理论电影网 | 日韩激情| 国产在线精品一区二区不卡 |