Я использую это:
$path = "/path/to/file/";
$filename = "my_file.pdf"
return response(Storage::disk('local')->get($path.$filename), 200)
->header('Content-Type', Storage::disk('local')
->mimeType($path.$filename)
);
Редактировать:
Если для хранения вы используете:
$path=$request->file('file')->store('file');
, который собирается сохранить файл вstorage/app/file
папка с именем, созданным laravel.Например:
storage/app/file/7K5gIZvRVWbdBedRXEyVm5X1Ubz61vJZguFmERlT.jpeg
(Убедитесь, что файл был сохранен).
И в БД вы должны сохранить (я не знаю, как вы это делаете, но это 'file 'folder и имя файла, созданного laravel):
file/7K5gIZvRVWbdBedRXEyVm5X1Ubz61vJZguFmERlT.jpeg
Итак, для загрузки вам необходимо составить маршрут:
Route::get('/download', 'DownloadController@downloadFile')->name('download-file');
и метод контроллера:
public function downloadFile()
{
$path = // get the DB field
return response(Storage::get($path), 200)
->header( 'Content-Type', Storage::mimeType($path) );
}
И вы можете добавить ссылку в виде:
<a href="{!! route('download-file') !!}" download>Download the file</a>