Моя структура такова:
/laravelfiles
/public_html
--/demo
----/index.php (and other files inside public folder)
Я изменил index.php для доступа к /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).
Как я могу это сделать?






Вы должны привязать и изменить общедоступный путь в приложении на 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');
});
}
}
Попробуйте использовать стороннее хранилище, например Amazon S3 или Ms Azure. У них тоже есть базовые/бесплатные планы.
Попробуйте добавить в свой config/filesystems.php
'custom' => [
'driver' => 'custom',
'root' => '../path/to/your/new/storage/folder',
],
а потом
Storage::disk('custom')->put($folder.'/'.$file_name, $file_data);
@RizkiHadiaturrasyid Этот код будет работать. Но на самом деле вам нужно изменить общедоступный каталог проекта. предопределенный общедоступный каталог Laravel называется public. Но на виртуальном хостинге публичным каталогом является public_html. Это решение, возможно, решило вашу проблему на данный момент, но вы столкнетесь с той же проблемой, когда произойдет что-то еще.
@SalarBahador У меня все еще есть «локальная» конфигурация драйвера, и я изменил только вторую строку «драйвер» => «пользовательский» на «драйвер» -> «локальный». Итак, теперь есть три конфигурации: общедоступная, локальная и пользовательская.
Спасибо. Пользовательский драйвер не работает, вместо этого я использовал локальный драйвер, в остальном все в порядке.