首页 > 解决方案 > Laravel 从上传中获取保存文件的路径

问题描述

我有一个 laravel 上传文件(以及传递给数据库的其他数据)一切正常。但我只是不知道如何保存已保存文件的路径。

这是我的控制器功能:

public function store(Request $request)
{
    request()->validate([
        'name'              => 'required',
        'logo'              => 'nullable',
        'original_filename' => 'nullable',
    ]);

    //This is where the file uploads?
    if ($request->hasFile('logo')) {
        $request->file('logo')->store('carrier_logo');
        $request->merge([
            'logo'              => '',//TODO: get file location
            'original_filename' => $request->file('logo')->getClientOriginalName(),
        ]);
    }

    Carrier::create($request->all());
    return redirect()->route('carriers.index')->with('toast', 'Carrier created successfully.');
}

我想要实现的东西:我想logo用类似的东西来填充carrier_logo/ZbCG0lnDkUiN690KEFpLrNcn2exPTB8mUdFDwAKN.png

每次我尝试修复它时发生的事情是将临时路径放在数据库中。最终成为 PHP 安装目录中的内容。

标签: phplaravelfile-upload

解决方案


只需将结果分配给变量:

$path = $request->file('logo')->store('carrier_logo');

根据文档

然后你可以$path随心所欲地使用变量。


推荐阅读