2016-06-29 10 views
0
\Storage::disk('verify_files')->put('verify-' . $fileCode[3], $fileCode[0]); 

    $attach = \Storage::get(storage_path('app/public/verify') . '/' . 'verify-' . $fileCode[3]); 

私は上記のコードを使用してファイルを生成し、取得しています。ここで[Laravel 5.2]ストレージファイルが存在しても見つからない場合

は、ファイルシステムが、私が使用している:

'verify_files' => [ 
     'driver' => 'local', 
     'root' => storage_path('app/public/verify'), 
     'visibility' => 'public', 
    ], 

私はfile_exists()でそれをテストする際には、trueを返しますが、laravelはFileNotFoundException in FilesystemAdapter.php line 61:

が、私はここで何かをしないのです返しますか?

答えて

2

get Storageファサードの方法では、デフォルトのディスクのディレクトリが自動的に検索されます。この場合、storage_pathを使用してファイルへの絶対パスを渡しています。これは、storage/appディレクトリをそのまま見てしまうため、冗長です。

代わりにStorage::disk('verify_files')->get('verify-' . $fileCode[3])を実行してください。

ファイルとディレクトリへの絶対パスが必要な場合は、storage_pathを使用してください。

+0

Storageファサードを使用せずにパスを通過し、そこから処理しました。私はあなたの答えが働くときにあなたを更新します。ありがとう! – HDKT

+0

ほぼ1ヶ月と私は更新するのを忘れました。 問題は - > get()がコンテンツを取得していました。 私はstorage_path( 'app/public/verify')のようなものでファイルを取り出しました。 "/" $ファイル もっと良い解決策がある場合は、教えてください! – HDKT

0

私はあなたに別の方法を使用してきた以外、私は、あなたと同じエラーを取得したパスについて言及した上で@SArnabを必要としないとき

  $parse = new Parsedown(); 
      $url = url('about.md'); // This would fail, because it returns absolute 
      $url = 'about.md'; // the file is living in the root directory of public. This would succeed, because it's relative 

      try { // catch file not found errors 
       $about = File::get($url); 
      } catch (Illuminate\Filesystem\FileNotFoundException $exception) { 
       die ('Bad File'); 
      } 

      echo $parse->text($about); 

これはthis pageの組み合わせから来て、絶対になる。

私には別の方法を使用するだけでなく、私が以前に持っていた唯一の問題は、私が現在使用している相対的なパスではなく絶対パスを使用していたことでした。

Laravel 5.2でファイルの内容を取得するには、この代替方法を追加すると思っていました。

お楽しみください!

関連する問題