Laravel 5.8 - 如何将文件从存储目录移动到 public 目录?

Laravel 5.8 - How to move file from storage directory to public directory?

我想将我的一个文件从 Laravel 中的 storage 文件目录移动到 laravel 中的 public 文件目录,而不更改我的文件系统配置。这可能吗?

是的,你可以用 Storage::move and public_path() 助手来完成。

Storage::move( 'old/file.jpg', public_path('new/file.jpg') );

请注意 old/file.jpg 是相对于 your-project/storage/app 的,因此您要移动的文件将位于 your-project/storage/app/old/file.jpg


更新

不过,另一种方法可能是 move/store laravel-project/storage/app/public 中的文件。

然后通过 symbolic link.

在 public 目录中访问它

之后,laravel-project/storage/app/public 中的所有文件和目录将被linked 到laravel-project/public/storage/ 目录。 然后你可以通过 url.

访问该文件

因此,要以这种方式进行,请将文件移动到 storage/app/public/ 文件夹:

Storage::move( 'old/file.jpg', 'public/movedfiles/file.jpg' );

通过此 artisan 命令创建符号 link:

php artisan storage:link

然后你可以通过url访问文件:

<a href='http://your-domain/storage/movedfiles/file.jpg'>file.jpg</a>

或 blade

<a href='{{ asset('storage/movedfiles/file.jpg') }}'>file.jpg</a>