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