Я здесь новичок, поэтому извините меня за этот вопрос, я использую return File::put($path , $data);
для создания файла в общей папке на Laravel. Я использовал этот фрагмент кода из контроллера, мне нужно знать значение $path
, каким оно должно быть.
Как получить публичный каталог?
comment
вы используете Laravel 3 или Laravel 4?
- person Laurence   schedule 12.02.2013
Ответы (4)
Используйте 1_
Для справки:
// Path to the project's root folder
echo base_path();
// Path to the 'app' folder
echo app_path();
// Path to the 'public' folder
echo public_path();
// Path to the 'storage' folder
echo storage_path();
// Path to the 'storage/app' folder
echo storage_path('app');
person
Justin
schedule
02.05.2014
Просто добавлю, что
public_path()
на самом деле довольно бесполезен — он просто предполагает, что все ваши общедоступные файлы находятся в каталоге с именем public — даже если это не так. Например, мне всегда приходится менять публичный каталог по умолчанию на public_html (в соответствии с моим сервером). Laravel этого не распознает. Поэтому не полагайтесь на это, чтобы сделать какое-либо разумное определение того, что на самом деле представляет собой ваш общий каталог. Я просто использую $_SERVER['DOCUMENT_ROOT'];
, если кто-нибудь не подскажет, почему мне не следует?
- person Inigo; 21.10.2017
@inigo это не бесполезно, вы просто не используете его по назначению. Если вы хотите изменить каталог public, вам нужно сообщить об этом Laravel: =google_rich_qa" title="laravel 5 изменить общедоступный путь"> stackoverflow.com/questions/31758901/
- person Justin; 03.05.2018
Вы можете использовать base_path() для получения базы вашего приложения, а затем просто добавить к ней свою общую папку:
$path = base_path().'/public';
return File::put($path , $data)
Примечание. Будьте очень осторожны, позволяя людям загружать файлы в корневой каталог public_html. Если они загрузят свой собственный файл index.php, они захватят ваш сайт.
person
Laurence
schedule
12.02.2013
base_path определен в laravel .. я использовал его, я получил эту ошибку Вызов неопределенной функции base_path()
- person Yasser Moussa; 12.02.2013
Да - это определено в helpers.php. Я протестировал свое приложение L4 - оно работает. Убедитесь, что вы используете последнюю сборку L4 — ее может не быть в более ранних версиях.
- person Laurence; 12.02.2013
Я знаю, что это немного поздно, но если кто-то еще наткнется на это, теперь вы можете использовать public_path(); в Laravel 4 он был добавлен в файл helper.php в папке поддержки см. здесь.
person
Brent
schedule
05.05.2013
Лучший способ получить путь к общедоступной папке из конфигурации Laravel — это функция:
$myPublicFolder = public_path();
$savePath = $mypublicPath."enter_path_to_save";
$path = $savePath."filename.ext";
return File::put($path , $data);
Нет необходимости иметь все переменные, но это просто для наглядности.
Надеюсь, это поможет, GRnGC
person
GCT
schedule
27.02.2014