Laravel Storage :: disk ('local') -> put создает файл вне файла проекта - PullRequest
0 голосов
/ 15 февраля 2019

Я запускаю свой проект с докером.Я использую функцию

   Storage::disk('local')->put("/algorithms/".$this->algorithm_id."/newfile.csv", $csv_newfile->__toString());

Я хочу сохранить этот файл как var/www/html/Laravel/resources/app/algorithms/algorithm_id/newfile Но он сохраняет его на один каталог выше папки проекта.Поэтому мой проект находится в /var/www/html/Laravel Но он создает этот файл в /var/www/html/algorithms/algorithm_id/newfile Я, вероятно, настроил корневой каталог проектов в /var/www/html (?) Но я не могу найти, где я это сделал.Может кто-нибудь объяснить, в чем может быть проблема?

Вот мой файл /config/filesystems.php

<?php

return [

/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| Here you may specify the default filesystem disk that should be used
| by the framework. The "local" disk, as well as a variety of cloud
| based disks are available to your application. Just store away!
|
*/

'default' => env('FILESYSTEM_DRIVER', 'local'),

/*
|--------------------------------------------------------------------------
| Default Cloud Filesystem Disk
|--------------------------------------------------------------------------
|
| Many applications store files both locally and in the cloud. For this
| reason, you may specify a default "cloud" driver here. This driver
| will be bound as the Cloud disk implementation in the container.
|
*/

'cloud' => env('FILESYSTEM_CLOUD', 's3'),

/*
|--------------------------------------------------------------------------
| Filesystem Disks
|--------------------------------------------------------------------------
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
| been setup for each driver as an example of the required options.
|
| Supported Drivers: "local", "ftp", "s3", "rackspace"
|
*/

'disks' => [

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

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

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],

],

];

1 Ответ

0 голосов
/ 15 февраля 2019

Я столкнулся с проблемой, похожей на вашу.Вот решение, которое сработало для меня:

Создайте новый диск, чтобы поместить его в каталог

'web_site_root' => [
            'driver' =>'local',
            'root' => base_path();
        ]

И вы хотите удалить первый /

Код:

   Storage::disk('web_site_root')->put("algorithms/".$this->algorithm_id."/newfile.csv", $csv_newfile->__toString());

Не знаю почему, но каким-то образом первый / сделал файл, в моем случае, для сохранения и в корне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...