나는 초보자이므로 return File::put($path , $data);Laravel의 공용 폴더에 파일을 만드는 데 사용 하는 이 질문에 대해 용서하십시오 . 컨트롤러에서이 코드를 사용하여 $path어떻게되어야 하는지를 알아야합니다.
답변:
사용하다 public_path()
참고로 :
// 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');
public_path()실제로는 쓸모가 없습니다. 모든 공개 파일이 "public"이라는 디렉토리에 있다고 가정합니다. 그렇지 않더라도 말입니다. 예를 들어, 항상 기본 "public"디렉토리를 "public_html"(내 서버에 따라)으로 변경해야합니다. 라 라벨은 이것을 인식하지 못합니다. 따라서 공개 디렉토리가 실제로 무엇인지 지능적으로 결정하기 위해 이것에 의존하지 마십시오. 내가 $_SERVER['DOCUMENT_ROOT'];왜 안되는지를 아무도 제안 할 수 없다면 나는 단지 사용하고 있는 것입니까?
base_path ()를 사용하여 응용 프로그램의 기반을 얻은 다음 공용 폴더를 추가 할 수 있습니다.
$path = base_path().'/public';
return File::put($path , $data)
참고 : 사람들이 public_html의 루트에 파일을 업로드하도록 허용하는 데 매우 주의 하십시오 . 자신의 index.php 파일을 업로드하면 사이트를 차지하게됩니다.
나는 이것이 조금 늦었다는 것을 알고 있지만 다른 누군가가 이것을 발견하면 이제 public_path (); Laravel 4에서는 support 폴더의 helper.php 파일에 추가되었습니다 . 여기를 참조하십시오 .