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

laravel 实现上传图片到本地和前台访问示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-14 15:01:48 浏览: 评论:0 

今天小编就为大家分享一篇laravel 实现上传图片到本地和前台访问示例,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

在config下新建文件admin.php,定义上传文件的路径

'upload_img_path' =>'app/public/img',//本地上传图片路径

'upload_file_path' =>'app/public/files'//本地上传文件路径

在config/filesystems.php下定义

  1. 'disks' => [ 
  2.  'uploadimg'=>[ 
  3.   'driver'=>'local'
  4.   'root'=>storage_path(config('admin.upload_img_path')) 
  5.  ], 
  6.  'uploadfiles'=>[ 
  7.   'driver'=>'local'
  8.   'root'=>storage_path(config('admin.upload_file_path')) 
  9.  ], 
  10.  
  11.  'local' => [ 
  12.   'driver' => 'local'
  13.   'root' => storage_path('app'), 
  14.  ], 
  15.  
  16.  'public' => [ 
  17.   'driver' => 'local'
  18.   'root' => storage_path('app/public'), 
  19.   'url' => env('APP_URL').'/storage'
  20.   'visibility' => 'public'
  21.  ], 
  22.  
  23.  's3' => [ 
  24.   'driver' => 's3'
  25.   'key' => env('AWS_KEY'), 
  26.   'secret' => env('AWS_SECRET'), 
  27.   'region' => env('AWS_REGION'), 
  28.   'bucket' => env('AWS_BUCKET'), 
  29.  ], 
  30.  
  31. ], 

后台上传方法

  1. public function uploadImg(Request $request){ 
  2.  
  3.  $wenjian$request->file('files'); 
  4.  if ($wenjian) { 
  5.  
  6.   //获取文件的原文件名 包括扩展名 
  7.   $yuanname$wenjian->getClientOriginalName(); 
  8.  
  9.   //获取文件的扩展名 
  10.   $kuoname=$wenjian->getClientOriginalExtension(); 
  11.  
  12.   //获取文件的类型 
  13.   $type=$wenjian->getClientMimeType(); 
  14.  
  15.   //获取文件的绝对路径,但是获取到的在本地不能打开 
  16.   $path=$wenjian->getRealPath(); 
  17.  
  18.   //要保存的文件名 时间+扩展名 
  19.   $filename=date('Y-m-d') . '/' . uniqid() .'.'.$kuoname
  20.   //保存文件   配置文件存放文件的名字 ,文件名,路径 
  21.   $bool= Storage::disk('uploadimg')->put($filename,file_get_contents($path)); 
  22.   //return back(); 
  23.   return json_encode(['status'=>1,'filepath'=>$filename]); 
  24.  }else
  25.   $idCardFrontImg = ''
  26.   return json_encode($idCardFrontImg); 
  27.  } 

前台显示

<img src="/storage/img/2018-04-27/5ae294e2830df.jpeg">

在写接口上传的照片如何保存到public让前端框架访问到,,就要建立软连接将照片放到public目录去访问! 很简单

执行命令:php artisan storage:link

命令执行完毕后,就会在项目里多出一个 public/storage,

这个 storage 就是一个软链接,它指向 storage/app/public 目录。

public/storage(软连接) → storage/app/public

然后就可以用地址直接访问public里面的照片了!

Tags: laravel上传图片 laravel前台访问

分享到: