【问题标题】:Laravel upload a file to different storage outside the project directoryLaravel 将文件上传到项目目录之外的不同存储
【发布时间】:2019-12-01 00:44:08
【问题描述】:

我正在创建一个 CMS,我可以在其中使用 Laravel 的文件上传来上传文件(照片、pdf 等)。我所做的不同之处在于我想将文件存储在我的 CMS 项目目录之外,比如说我网站的存储文件夹。顺便说一句,我正在创建两个不同的项目

Laravel 文档说我可以在 filesystems.php 中更改它的上传路径,我所做的是获取我的网站存储文件夹的相对路径并将其粘贴到此处(见下文)。

    'local' => [
        'driver' => 'local', //here
        'root' => storage_path('app'), 
    ],

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

正如预期的那样,它不起作用。有帮助吗?

【问题讨论】:

  • 项目目录之外是什么意思?
  • 任何错误信息?
  • @EmtiazZahid 我的意思是我想将文件上传到我的 CMS 目录之外,因为我正在创建两个单独的项目。我知道 Laravel 默认将上传的文件存储在项目存储文件夹中,但我不想使用它。

标签: php laravel file-upload


【解决方案1】:

您可以在文件系统中添加多个磁盘。

只需定位在同一个网站存储文件夹中

示例:

项目 1:

'disks' => [
        'custom_folder_1' => [
            'driver' => 'local',
            'root'   => '../path/to/your/new/storage/folder',
        ],
]

项目 2:

'disks' => [
        'custom_folder_2' => [
            'driver' => 'local',
            'root'   => '../path/to/your/new/storage/folder',
        ],
]

路径应该是相同的位置。

../path/to/your/new/storage/folder

然后你可以像这样使用它:

Storage::disk('custom_folder_1')->put('filename1', $file_content);
Storage::disk('custom_folder_2')->put('filename2', $file_content);

【讨论】:

  • 我想我错过了在 Laravel 的文档中我不知道您可以创建自定义存储路径。谢谢男人,Imma 试试你的建议。
  • 兄弟,你今天为我省了很多麻烦,谢谢!我支持并接受了您的回答
  • InvalidArgumentException 带有消息“不支持驱动程序 [自定义]。”
  • @Eboubaker 这只是一个示例目的。现在更新了本地驱动程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 2011-05-19
  • 2020-01-12
相关资源
最近更新 更多