Laravel 5 на Shared Hosting без SSH: Как сохранить загруженный файл непосредственно в папку public_html? - PullRequest
0 голосов
/ 30 апреля 2019

Моя структура такая:

/laravelfiles
/public_html
--/demo
----/index.php (and other files inside public folder)

Я изменил index.php на access / laravelfiles, все работает нормально.

Моя конфигурационная файловая система:

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

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

Когда я пытаюсь сохранить файл:

Storage::disk('public')->put($folder.'/'.$file_name, $file_data);

Хранит в папке laravelfiles / public. Поскольку он отделен, файл недоступен.

Я хочу сохранить файл в папке / public_html / demo (в той же папке, где находится index.php).

Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 30 апреля 2019

Попробуйте использовать стороннее хранилище, например Amazon S3 или Ms Azure. У них тоже есть базовые / бесплатные планы.

0 голосов
/ 30 апреля 2019

Попробуйте добавить в ваш config / filesystems.php

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

, а затем

Storage::disk('custom')->put($folder.'/'.$file_name, $file_data);
0 голосов
/ 30 апреля 2019

Вы должны привязать и изменить публичный путь в приложении на public_html, добавив эту строку кода в AppServiceProvider.php

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {    
          // uncomment this after deployment to actual server
        $this->app->bind('path.public', function() {
            return base_path('public_html');
        });

    }

}
...