Laravel 获取上传保存文件的路径

mik*_*ike 5 php file-upload 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.');
}
Run Code Online (Sandbox Code Playgroud)

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

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

mck*_*yin 4

只需将结果分配给变量:

$path = $request->file('logo')->store('carrier_logo');
Run Code Online (Sandbox Code Playgroud)

根据文档

然后你就可以用$path变量做你想做的任何事情。

  • 使用该代码,路径将是“C:\xampp\tmp\phpA9C1.tmp” (2认同)