如何使用下拉列表从数据库下载动态文件

时间:2019-06-17 04:56:10

标签: laravel download

我想使用下拉菜单下载文件,下拉菜单是从数据库中循环出来的:

enter image description here

enter image description here

这是控制者 DataController 方法 index(),用于显示数据库中的文件名:

public function index()
{

    $data = Document::select('filename')->get();
    return view('testdata', compact('data'));
}

这是用于下载文件的文件的下载功能,文件名取决于我选择 Burger.jpg 时的文件名,因此下载的文件应为 Burger.jpg

public function download(Request $request)
{
    $data = Document::find($request->filename);
    return response()->download(public_path($data));

    return redirect()->back();
}

但是当我选择 Burger.jpg 时,下载的文件是 sow.docx ,我选择了 carbon.png ,下载的文件也 sow.docx ,阿尔萨斯语 sow.docx

enter image description here

这是我的表单操作:

<form 
    method="get" 
    action="{{route('download')}}" 
    accept-charset="UTF-8" 
    enctype="multipart/form-data">
    <div class="form-group">
        <select class="custom-select" name="filename" id="input-filename">
            <option value="">
                Select data
            </option>

            @foreach($data as $datas)
                <option value="{{$datas->id}}">{{$datas->filename}}</option>
            @endforeach
        </select>
    </div>

    <button type="submit" class="btn btn-primary">Download</button>
</form>

这是我的数据库视图: enter image description here

如何根据 id 下载?

当我选择 Burger.jpg 从而下载了 Burger.jpg 时,当我选择 sow.docx 时,下载的是 sow。 docx ??? 怎么会那样? 谢谢

0 个答案:

没有答案