Php Laravel从上载获取保存文件的路径

Php Laravel从上载获取保存文件的路径,php,laravel,file-upload,Php,Laravel,File Upload,我有一个laravel上传文件(连同其他数据一起传递到数据库),一切正常。但我就是不知道如何保存保存的文件的路径 以下是我的控制器功能: public function store(Request $request) { request()->validate([ 'name' => 'required', 'logo' => 'nullable', 'original_

我有一个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\u logo/zbcg0lndkuin690kefplrncn2exptb8mudfdwawkn.png的内容


每次我试图修复它时都会发生的事情是,它将临时路径放在数据库中。它最终位于PHP安装目录中。

只需将结果分配给变量:

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


然后您可以随意使用
$path
变量。

只需这样分配值

 $location=base_path('img/'.$filename);
并将其保存在db中。

您可以执行以下操作:

用于文件名

$fileName = $request->file('test')->getClientOriginalName();

$fileName = $request->user()->id.'.'.$request->file('logo')->getClientOriginalExtension();

$imageDirectory = 'logo_images';

$path = $request->file('logo')->storeAs($imageDirectory, $fileName);
dd($path);

使用该代码,路径将是
C:\xampp\tmp\phpA9C1.tmp
上面的代码应该将您的文件上载到storage/app/carrier\u徽标。默认情况下,它将使用config/filesystem.php中的默认磁盘。如果没有,请尝试传递磁盘变量。