私はここでは初心者なので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」に変更する必要があります(サーバーに合わせて)。Laravelはこれを認識しません。したがって、これに依存して、パブリックディレクトリが実際に何であるかをインテリジェントに判断しないでください。$_SERVER['DOCUMENT_ROOT'];
なぜ私がすべきでないのか誰かが提案できない限り、私はただ使っていますか?
base_path()を使用してアプリケーションのベースを取得し、パブリックフォルダーをそれに追加するだけです。
$path = base_path().'/public';
return File::put($path , $data)
注:public_htmlのルートにファイルをアップロードできるように注意してください。彼らが彼ら自身のindex.phpファイルをアップロードするならば、彼らはあなたのサイトを引き継ぎます。
これは少し遅れていることはわかっていますが、他の誰かがこの外観に出くわした場合は、public_path()を使用できます。Laravel 4では、サポートフォルダーのhelper.phpファイルに追加されています。こちらをご覧ください。