本地上传
先添加存储配置,config/filesystems.php
添加一项 disk
:
'disks' => [
... ,
'admin' => [
'driver' => 'local',
'root' => storage_path('app/admin'),
'url' => env('APP_URL') . '/admin',
'visibility' => 'public',
'throw' => false,
],
],
最下面 links
'links' => [
public_path('storage') => storage_path('app/public'),
// 这个是再增加一个 link
public_path('admin') => storage_path('app/admin'),
],
然后选择上传的 disk
,打开 config/admin.php
找到:
'upload' => [
'disk' => 'admin', // 原本默认的值是 public
],
然后执行 php artisan storage:link
,会将两个文件软连接
ERROR The [public/storage] link already exists.
INFO The [public/admin] link has been connected to [storage/app/admin].
对应的访问路径是 http://localhost/admin/images/xxx.png
后台如果想显示,则使用 $grid->column('image', '图片')->image();
即可
如果想在前台显示,则可以使用 config('filesystems.disks.admin.url').'/images/xx.png'
,这种方案,不管filesystems.disks.admin.url'
,怎么修改,都可以正常访问
封装方法
if (!function_exists('adminImageUrl')) {
/**
* 获取后台上传的
* @param string $image
* @return string
*/
function adminImageUrl($image)
{
return config('filesystems.disks.admin.url') . '/' . $image;
}
}