2013-02-12 1 views
27

私は初心者ですので、この質問のために私にはreturn File::put($path , $data);を使ってLaravelのパブリックフォルダにファイルを作成しています。私はコントローラーからこのコードを使用しました。値は$pathであることを知る必要があります。パブリックディレクトリを取得するには?

+0

あなたはLaravel 3またはLaravel 4を使用していますか? – Laurence

+0

私はバージョン4を使用しています –

答えて

87

使用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'); 
+0

単に 'public_path()'が実際にはかなり役に立たないということを追加するために、あなたのパブリックファイルはすべて "public"というディレクトリにあります。たとえば、私はいつもデフォルトの "public"ディレクトリを "public_html"(私のサーバに合わせて)に変更しなければなりません。ララヴェルはこれを認識しません。したがって、あなたのパブリックディレクトリが実際に何であるかを知的に判断するためにこれに頼らないでください。私は '$ _SERVER ['DOCUMENT_ROOT'];を使用しています。 – Inigo

9

あなたはあなたのアプリケーションのベースを取得するにはBASE_PATHを()を使用することができます - その後、ちょうどそれにパブリックフォルダを追加します。

$path = base_path().'/public'; 
return File::put($path , $data) 

注:人々はにファイルをアップロードできるようにする程度非常に注意してください、あなたのpublic_htmlのルート。彼らが独自のindex.phpファイルをアップロードすると、あなたのサイトを引き継ぐでしょう。

+1

はlaravelで定義されたbase_pathです。私はそれを使用しました。私はこのエラーを持っています未定義の関数を呼び出すbase_path() –

+0

はい - helpers.phpで定義されています。私は私のL4アプリで試してみました - それは動作します。最新のL4ビルドを実行していることを確認してください。以前のバージョンにはなかったかもしれません。 – Laurence

10

私はこれが少し遅れたことを知っていますが、他の誰かがこのような見方をしている場合は、public_path()を使用できます。 Laravel 4では、サポートフォルダsee hereのhelper.phpファイルに追加されています。すべての変数を持ってする必要はありません

$myPublicFolder = public_path(); 
$savePath = $mypublicPath."enter_path_to_save"; 
$path = $savePath."filename.ext"; 
return File::put($path , $data); 

が、これは単に例証的な目的のためにある:

3

あなたLaravelの設定からパブリックフォルダのパスを取得するための最良の方法は、関数です。参考のためにこのことができます

希望、 GRnGC

関連する問題