laravel,如何将图像保存到 public_html 目录

laravel, How to save images to public_html directory

我已经在主机上部署了我的页面。 我在发布图片时遇到问题。

所有图片都存入app/public/images

但我需要将它们存储到 public_html/public/images

filesystems.php 文件:

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => public_path(),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',

这里需要做哪些改动?

将它们存储在 public_html/images 中不是个好主意 似乎您正在使用 CPanel,因此您应该在 CPanel 中将根目录更改为 public_html/public,有时您应该要求您的提供商这样做。

然后你可以按照Laravel指令存储在app/public之后,有必要在public目录中创建一个symlink,如Laravel 文档被提及。

相信我,有很多方法可以做到这一点,但这种方法既清晰又安全。

最后,要将数据存储在 public 目录中,请遵循以下代码:

$path = 'images';
$newFilename = Storage::disk('public')->store($path);

因此,根据 this link 中的 symlink 描述,您的第一个 public 目录将是 storage,因此当您想要使用此 link 在你的,使用下面的代码:

Storage::disk('public')->url($newFilename);

并且 $newFilename 本身将由 \images` 组成。

综上所述,文件将存储在 \public_html\public\storage\images,您将在 store 方法的 return 中获得文件的部分路径,并通过调用 url 方法,您将拥有完整的 url by laravel iteself.