Создайте ссылку на скачивание с файлом из базы данных и поместите его на кнопку - PullRequest
0 голосов
/ 08 января 2019

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

My DownloadsController.php

class DownloadsController extends Controller
{
  public function download($file_name) {
    $file = DB::table('media')->where('status',1)->get();
    $file_path = public_path('files/'.$file);
    return response()->download($file_path);
  }
}

Мой маршрут

Route::get('/files/{file}', 'DownloadsController@download');

Кнопка

{!! Html::link('files/{file}', 'Download Media') !!}

Я вижу по ссылке http://example/files/{file}. Как разместить файл по ссылке для скачивания?

1 Ответ

0 голосов
/ 08 января 2019

Обычно вы определяете свой маршрут в маршрутах / web.php, например:

https://laravel.com/docs/5.7/routing#named-routes

Route::get('file/{file}', 'Controller@method')->name('file-download');

Это означает, что на вашей кнопке вам нужно указать правильную ссылку на имя файла, например,

{!! Html::link('files/filename.jpg', 'Download Media') !!}

Помните, что это должно быть допустимое имя файла. В качестве альтернативы вы можете использовать помощник по маршруту, вставив имя маршрута, как указано выше, а затем параметр маршрута, например, route ('file-download', 'filename.jpg').

Окончательная ссылка кнопки будет выглядеть следующим образом при использовании помощника по маршрутизации;

{!! Html::link(route('file-download', 'filename.jpg'), 'Download Media') !!}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...