laravel : 如何在数据库中存储文件上传路径
laravel : How to Store file uploaded path in database
这是我的控制器代码:
public function save(Request $request) {
try {
$this->validate($request, Country::rules());
If(Input::hasFile('flag_image')){
$file = Input::file('flag_image');
$destinationPath = public_path(). '/images/admin/country/';
$filename = $file->getClientOriginalName();
$image = time().$filename;
$file->move($destinationPath, $image);
$imgpath = 'public/images/admin/country/'.$image;
}
$request['flag_image'] = $imgpath;
$country = Country::saveOrUpdate($request);
if($country !== false) {
return redirect()->route('lists-country')->with('success', trans('Country data added successfully.!!'));
} else {
return back()->with('error', "Unable to save country data.!!")->withInput();
}
} catch (\Exception $ex) {
return back()->with('error', "Unable to save country data.!!")->withInput();
}
}
当我在 saveOrUpdate
函数之前 dd($request)
时,我得到了图像上传文件的完整路径。
+request: ParameterBag {#40 ▼
#parameters: array:6 [▼
"_token" => "c94UG3R2PbbdHsXRLzs9OjEBTna23OHINFpki63U"
"id" => ""
"title" => "INDIA"
"short_name" => "IN"
"status" => "Active"
"flag_image" => "public/images/admin/country/1515577652banner5.jpg"
]}
在 table 上成功添加数据后,flag_image 路径看起来像 "D:\xampp\tmp\php63D3.tmp"
我想存储 "public/images/admin/country/1515577652banner5.jpg"
这条路径。
就这样
$country->flag_image = $imgpath;
$country->save();
在
之后
$country = Country::saveOrUpdate($request);
您需要它:
$request->merge(['flag_image' => $imgpath]);
而不是:
$request['flag_image'] = $imgpath;
这是我的控制器代码:
public function save(Request $request) {
try {
$this->validate($request, Country::rules());
If(Input::hasFile('flag_image')){
$file = Input::file('flag_image');
$destinationPath = public_path(). '/images/admin/country/';
$filename = $file->getClientOriginalName();
$image = time().$filename;
$file->move($destinationPath, $image);
$imgpath = 'public/images/admin/country/'.$image;
}
$request['flag_image'] = $imgpath;
$country = Country::saveOrUpdate($request);
if($country !== false) {
return redirect()->route('lists-country')->with('success', trans('Country data added successfully.!!'));
} else {
return back()->with('error', "Unable to save country data.!!")->withInput();
}
} catch (\Exception $ex) {
return back()->with('error', "Unable to save country data.!!")->withInput();
}
}
当我在 saveOrUpdate
函数之前 dd($request)
时,我得到了图像上传文件的完整路径。
+request: ParameterBag {#40 ▼
#parameters: array:6 [▼
"_token" => "c94UG3R2PbbdHsXRLzs9OjEBTna23OHINFpki63U"
"id" => ""
"title" => "INDIA"
"short_name" => "IN"
"status" => "Active"
"flag_image" => "public/images/admin/country/1515577652banner5.jpg"
]}
在 table 上成功添加数据后,flag_image 路径看起来像 "D:\xampp\tmp\php63D3.tmp"
我想存储 "public/images/admin/country/1515577652banner5.jpg"
这条路径。
就这样
$country->flag_image = $imgpath;
$country->save();
在
之后$country = Country::saveOrUpdate($request);
您需要
$request->merge(['flag_image' => $imgpath]);
而不是:
$request['flag_image'] = $imgpath;