2015-11-06 3 views
0

Я настроил свою систему так, чтобы каждая новая запись создавала также папку в папке хранилища для сохранения связанных документов, таких как PDF.Laravel - открыть файл, хранящийся в каталоге приложения через гиперссылку?

e.g. app/storage/records/123456/document.pdf

У меня есть следующие в моем контроллере:

$files = File::allFiles(app_path().'/storage/records/'.$record->id); 

Затем я могу показать путь к документам в определенной папке на мой взгляд звукозаписывающей следующим:

@foreach($files as $file) 
    <div>{{ HTML::link($file, basename($file)) }}</div> 
@endforeach 

Но когда я нажимаю на ссылку, она добавляет путь приложения к концу URL-адреса и, очевидно, возвращает 404.

Как я могу настроить это для запуска загрузки HTTP, когда я нажимаю ссылку?

+0

Вы хотите сделать загрузку файла или просто ссылки на файл? –

ответ

0

Вам необходимо создать маршрут для извлечения файла и отправить его с соответствующими заголовками загрузки. В Laravel 5, его простая форма:

// routes.php 
Route::get('downloads/{record_id}/{filename}', function ($record_id, $filename) 
{ 
    $headers = [ 
     // set whatever extra download headers you want here... 
    ]; 
    return response()->download(app_path().'/storage/records/'.$record_id.'/'.$filename, $filename, $headers); 
}); 

Вам нужно будет настроить HTML :: ссылки() для отражения маршрута загрузок, что вы выбираете для его вызова.

Смежные вопросы