2017-01-18 19 views
0

Laravel 5.3でファイルシステムを使用する際に問題が発生しています。私はローカルストレージにファイルを保存しようとしていますが、$file->store('directory', 'local')またはStorage::putFile('directory', $file)のいずれかを呼び出すと、正しい場所に格納されます。storage/app/directory/filenameしかし、両方の関数によって返されるパスには、storage/appディレクトリへのパスは含まれておらず、ちょうどdirectory/filenameです。Laravel 5.3ファイルシステムストア/ putFileが動作しない

私のローカルストレージドライバの設定は以下の通りです:

明らか
'local' => [ 
      'driver' => 'local', 
      'root' => storage_path('app'), 
     ], 

私はstorage_path()ヘルパーで$パスをラップすることができますが、ドキュメントを読んだとき、これがないと思えます。 https://laravel.com/docs/5.3/filesystem#storing-files

私は間違っているか何かをしていますか?

答えて

0

実際には狂っていません。ストレージパスは設定可能です。したがって、Laravelがデータベースに格納するが、ラインを変更した場合、問題が発生する可能性があります。

ブレードテンプレートにファイルを表示しようとすると、単にstorage_path($file)を追加するだけです。それは自動的にファイル名の前にストレージへの適切なパスを適用し、ファイルがどこにあるかを見つけるはずです。

はそれが助け場合は/あなたの設定では、あなたはすでにあなたのrootディレクトリとして保存/ appディレクトリを設定しているため、これは仕様です

+0

私はちょうどテイラーがドキュメントでそれを説明したいと思います。私はすでにヘルパー関数を適用していますので、私はそれに固執します。誰も他の誰かが出てこないなら、これを答えとしてマークします。 ありがとう – rosscooper

+0

それがあなたを助ける限り。 ;) –

0

を働いた。教えてください

したがって、ルートからの相対パスが返されます。

相対パスではなく絶対パスを返すようにしたい場合があります。あなたのストレージドライバがAWS S3バケットだった場合を想像してみましょう。この場合、パスはabsoluteではありません。絶対パスはローカルドライバ固有の用語ですが、コードは複数のドライバによって拡張/使用されるように記述されています(したがって、putfileメソッドの一貫した戻り値が必要でした)。だから、相対パスがこの場合の唯一の選択肢だった

関連する問題