Laravel 之有关 storage:link 路径设置

正在学习 Laeavel 的有关于图片上传,由于 Laravel 官方说明 对我而言仍有些不够清楚,因此昨日在本站发了一篇[有关 storage:link 路径设置] 请教邦友,经过许多邦友热心提供宝贵意见,加上自己经过一连串测试练习终于有些心得,仅此,也藉本站发表分享一下心得,以慰邦友们热心协助,也许也能提供后进初学者参考因而省些冤枉路。

本文论及之技术範围仅限于:文件上传之 Laravel 使用设定

Laravel 之设定档案=>config/filesystems.php('s3'部分省略)

/*|这里是说 预设存储的 disk => 如果在.env 档案中有设置 FILESYSTEM_DRIVER=*** 就使用 ***,若 .env 中没有设置则使用 local ( 就是本机 disk )。 */    'default' => env('FILESYSTEM_DRIVER', 'local'),//使用 本机 disk 时,还可以有 2选1 目录模式 可供任选:'disks' => [        /*|一、选择使用 项目根目录/storage... 这个是预设选项|第一句话意思:本机存储 |第二句话意思:上传之档案会存放于 项目根目录/storage/app  这个资料夹  =>如果想要修改可以改动 ('app') 如下: ex:('/')=存在storage 目录, ('app/photos')=存在storage/app/photos 目录, 余.. 类推|默认使用 相对路径 但也可以加上第三句话 'url' => env('APP_URL').'/storage', 意思:指定要使用 绝对路径 */        'local' => [            'driver' => 'local',            'root' => storage_path('app'),        ],//选用本选项 必须 将 local 改成 public 像这样'default' => env('FILESYSTEM_DRIVER', 'public'),/*|二、选择使用 网站根目录/public... 这个选项|第一句话意思:本机存储 |第二句话意思:上传之档案会存放于 项目根目录/storage/app/public  这个资料夹  =>如果想要修改可以改动 ('app/public') 方法如上述|第三句话意思:默认使用 绝对路径 :域名/storage/app/public/档案名|第四句话意思:让档案变成公开,让访客可以读取*/        'public' => [            'driver' => 'local',            'root' => storage_path('app/public'),            'url' => env('APP_URL').'/storage',            'visibility' => 'public',        ],],//这里是关键:上传的档案都存放在 storage 目录下,访客是无法访问得到的,若要提供给访客能看得到必须执行一条命令 ,以便在 网站根目录public 里面产生一个 storage 的捷径。
php artisan storage:link
/*|这句话意思:在 public 目录里建立一个 storage 的捷径 直接链接到档案存放位置。|这里的 ('app/public') 也是可以修改的,方法也如上所述。|甚至这个 ('storage') 也是可以修改的 ex: ('aaa') 或 ('BBB')...随意取名字,可同时多个存在。*/    'links' => [        public_path('storage') => storage_path('app/public'),    ],

如上,说明以完结。若有初学者有兴趣试试看的,可以参考以下做法:
1、打开 web.php 2、打开 welcome.blade.php 3、浏览器上传图片 4、在目录中 检查图片

//1、web.php <?phpuse Illuminate\Support\Facades\Route;use Illuminate\Http\Request;Route::get('/', function () {    return view('welcome');});Route::PATCH('/upload', function (Request $request){$path = $request->file->store('/');        $url = Storage::url($path);        return response()->json(['message' => 'success', 'data' => $url], 200);});//2、 welcome.blade.php  (将 Laravel 换成 以下 的 form)<form method="post" enctype="multipart/form-data" action="/upload">    {{ csrf_field() }}    {{ method_field('PATCH') }}  <input name="file" type="file">  <input name="upload" type="submit" value="上传"></form>

以上就如同野人献曝,或有欠妥敬请前辈指教。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章