当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel5.5框架的上传图片功能实例分析【仅传到服务器端】

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-26 10:04:32 浏览: 评论:0 

本文实例讲述了laravel5.5框架的上传图片功能,分享给大家供大家参考,具体如下:

这里面包含单张和多张图片的上传

首先先来前端页面的html

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.   <title>上传图片</title> 
  5. </head> 
  6. <body> 
  7. <form method="post" action="{{url('uploadImgs')}}" enctype="multipart/form-data"
  8.   {{csrf_field()}} 
  9.   <input type="file" name="filename[]"><br/> 
  10.   <input type="file" name="filename[]"><br/> 
  11.   <input type="file" name="filename[]"
  12.   <button type="submit">上传图片</button> 
  13. </form> 
  14. </body> 

记得路径那改成post

然后就是后台代码

到config/filesystem.php下增加一个

  1. 'upload' => [ 
  2.       'driver' => 'local'
  3.       'root' => 'uploadImages' 
  4.     ], 

use Illuminate\Http\Request;

  1. // 单张图片 
  2.  public function uploadImg(Request $request){ 
  3.    if ($request->hasFile('filename')) { 
  4.       $postPics = $request->file('filename'); 
  5.       foreach ($postPics as $k => $v) { 
  6.         $extension = $v->extension(); 
  7.         $rule = ['jpg''png''gif''jpeg']; 
  8.         if (!in_array($extension$rule)) { 
  9.           return '图片格式需要为jpg,png,gif格式'
  10.         } 
  11.         $dir = date('ymd'); 
  12.         $fileName = time() . mt_rand(1, 999) . ".jpg"
  13.         $storeResult = $v->storeAs('filename'$dir . "/" . $fileName'upload');// 默认保存位置是要到filesystem.php设置,保存到storage/app/.. 
  14.         $outPut[] = [ 
  15.           'img_url' => "images/" . $storeResult'uid' => $uid'exam_id' => $examId'question_id' => $questionId
  16.         ]; 
  17.       } 
  18.       DB::table('x2_upload_img')->insert($outPut); 
  19.       echo "写到数据库了,图片上去了只是ide加载很慢"
  20.  
  21.     } else { 
  22.       exit('未获得到上传文件,或上传失败'); 
  23.     } 
  24.  
  25. // 多图上传 
  26. public function uploadImgs(Request $request){ 
  27.     if($request->hasFile('filename')){ 
  28.       $postPics = $request->file('filename'); 
  29.       foreach ($postPics as $k=>$v){ 
  30.         $extension = $v->extension(); 
  31.         $rule = ['jpg','png','gif','jpeg']; 
  32.         if(!in_array($extension,$rule)){ 
  33.           return '图片格式需要为jpg,png,gif格式'
  34.         } 
  35.         $storeResult = $v->storeAs('filename','201810/test1.jpg','upload');// 默认保存位置是要到filesystem.php设置,保存到storage/app/.. 
  36.  
  37.         $outPut[] = [ 
  38.           'extension' => $extension
  39.           'store_result' => $storeResult 
  40.         ]; 
  41.       } 
  42.       echo "<pre>"
  43.       print_r($outPut);die
  44.     } 
  45.     exit('未获得到上传文件,或上传失败'); 
  46.  
  47. // 上传图片第二种方式(form表单直接传过来) 
  48. public uploadImg(){ 
  49.     $image = $_FILES["photo"]["tmp_name"]; 
  50.     $fp = fopen($image"r"); 
  51.     $file = fread($fp$_FILES["photo"]["size"]); //二进制数据流 
  52.     //保存地址 
  53.     $imgDir = './Uploads/'
  54.     //要生成的图片名字 
  55.     $filename = date("Ym")."/".md5(time().mt_rand(10, 99)).".png"//新图片名称 
  56.     $newFilePath = $imgDir.$filename
  57.     $data = $file
  58.     $newFile = fopen($newFilePath"w"); //打开文件准备写入 
  59.     fwrite($newFile$data); //写入二进制流到文件 
  60.     fclose($newFile); //关闭文件 
  61. }

Tags: laravel5.5上传图片

分享到: