laravel ダウンロード ファイルには、Stroage を使用するためのさまざまな方法が用意されています。 laravel 5に付属するファイルシステムは非常に強力で、多くのメソッドを提供し、リモートストレージなどもサポートしています。 Laravel 5 の Response は、Syfmony に基づいて SymfonyComponentHttpFoundation Response をさらにカプセル化したものです。
昨日、ファイルをダウンロードする機能を作成しました。当初はStroageを使用すればすべての操作が完了すると思っていましたが、公式Webサイトのドキュメントを確認したところ、次のことがわかりました。ファイルをダウンロードする必要がある場合は、Response のダウンロード メソッドを直接使用してみてはいかがでしょうか。もちろん、ファイルの絶対パスまたは相対パスがすでにわかっていることが前提です。
ストレージのデフォルトのパスは、/storage/app ディレクトリにあります。パスが設定されていない場合、ストレージのメソッドを使用してファイルを取得または保存すると、このディレクトリに保存されます。
ただし、保存したファイルはこのディレクトリにありません。絶対パスがある場合は、直接ダウンロードする方法が最も簡単です。
リモート FTP の場合は、Storage を使用する必要があります。FTP サービスを選択して設定し、それを Response::download() メソッドに渡します。続く。
return response()->download($resource['path'] . $resource['name'], $resource['original_name']);
まずダウンロード メソッドを見てみましょう:
/** * Create a new file download response. * * @param \SplFileInfo|string $file * @param string $name * @param array $headers * @param string|null $disposition * @return \Symfony\Component\HttpFoundation\BinaryFileResponse */ public function download($file, $name = null, array $headers = [], $disposition = 'attachment');