laravel 实现上传图片到本地和前台访问示例
在config下新建文件admin.php,定义上传文件的路径
'upload_img_path'=>'app/public/img',//本地上传图片路径
'upload_file_path'=>'app/public/files'//本地上传文件路径
在config/filesystems.php下定义
'disks'=>[
'uploadimg'=>[
'driver'=>'local',
'root'=>storage_path(config('admin.upload_img_path'))
],
'uploadfiles'=>[
'driver'=>'local',
'root'=>storage_path(config('admin.upload_file_path'))
],
'local'=>[
'driver'=>'local',
'root'=>storage_path('app'),
],
'public'=>[
'driver'=>'local',
'root'=>storage_path('app/public'),
'url'=>env('APP_URL').'/storage',
'visibility'=>'public',
],
's3'=>[
'driver'=>'s3',
'key'=>env('AWS_KEY'),
'secret'=>env('AWS_SECRET'),
'region'=>env('AWS_REGION'),
'bucket'=>env('AWS_BUCKET'),
],
],
后台上传方法
publicfunctionuploadImg(Request$request){
$wenjian=$request->file('files');
if($wenjian){
//获取文件的原文件名包括扩展名
$yuanname=$wenjian->getClientOriginalName();
//获取文件的扩展名
$kuoname=$wenjian->getClientOriginalExtension();
//获取文件的类型
$type=$wenjian->getClientMimeType();
//获取文件的绝对路径,但是获取到的在本地不能打开
$path=$wenjian->getRealPath();
//要保存的文件名时间+扩展名
$filename=date('Y-m-d').'/'.uniqid().'.'.$kuoname;
//保存文件配置文件存放文件的名字,文件名,路径
$bool=Storage::disk('uploadimg')->put($filename,file_get_contents($path));
//returnback();
returnjson_encode(['status'=>1,'filepath'=>$filename]);
}else{
$idCardFrontImg='';
returnjson_encode($idCardFrontImg);
}
}
前台显示
在写接口上传的照片如何保存到public让前端框架访问到,,就要建立软连接将照片放到public目录去访问!很简单
执行命令:phpartisanstorage:link
命令执行完毕后,就会在项目里多出一个public/storage,
这个storage就是一个软链接,它指向storage/app/public目录。
public/storage(软连接)→storage/app/public
然后就可以用地址直接访问public里面的照片了!
以上这篇laravel实现上传图片到本地和前台访问示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。