在laravel 5.2中,我可以使用下面的代码上传文件,但找不到将上传的文件名存储在数据库中的方法。
$destinationPath = "test/";
$file = $request->file('profile_pic');
if($file->isValid()){
$file->move($destinationPath, $file->getClientOriginalName());
$user = User::findOrFail(Auth::user()->id);
$input = $request->all();
$input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();
$user->update($request->all());
}
有谁知道如何在db中存储文件名?
答案 0 :(得分:6)
上传文件/图像和将真实姓名写入数据库的代码
public function store(Request $request)
{
$data = $request->all();
if($file = $request->file('your_file')){
$name = $file->getClientOriginalName();
$file->move('folder_where_to_save', $name);
$data['your_file'] = $name;
}
Model_name::create($input);
}
答案 1 :(得分:2)
你可以试试这个,它会帮助你:
$destinationPath = "test/";
$file = $request->file('profile_pic');
if($file->isValid()){
$file->move($destinationPath, $file->getClientOriginalName());
$user = User::findOrFail(Auth::user()->id);
$input = $request->all();
$input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();
$user->update($request->all()); // Remove This
// Add this lines
$data['YOUR_DB_FIELD_NAME'] = $file->getClientOriginalName();
$user->update($data);
}
答案 2 :(得分:2)
检查此完整代码
$destinationPath = 'uploads';
$extension = Input::file('prd_img')->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$extension;
Input::file('prd_img')->move($destinationPath, $fileName);
$data = array(
'prd_name' => $prd_name,
'prd_cat' => $prd_cat,
'prd_sub_cat' => $prd_sub_cat,
'prd_img' => $fileName,
'remember_token' => $remember_token,
'created_at' => $time,
);
if(DB::table('products')->insert($data)){
return redirect('add-product')->with('success', 'Product Succssfully Added.');
}else{
return redirect('add-product')->with('error', 'Something wrong please try again.');
}
答案 3 :(得分:0)
我知道了。愚蠢的错误!!
需要替换
中的行$input['profile_pic']->pathname = $destinationPath.$file->getClientOriginalName();
到
$input['profile_pic'] = $destinationPath.$file->getClientOriginalName();