我正在尝试使下载按钮从数据库中获取一个文件并下载。到目前为止,这就是我所拥有的,将不胜感激。
我的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}
。如何将文件放在下载链接上?
答案 0 :(得分:0)
您通常会在routes / 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') !!}