我试图在我的laravel项目中存储图像。但是我遇到了问题。
将图像作为文件名添加到/ public / images文件夹中,但当请求到达数据库时,它会添加为/ private / var / tmp / XXXXX。
我试过设置$ request->文件作为名称,但它仍然作为var / temp发布。
继承控制器代码;
public function store(Request $request)
{
$rules = [
// 'address' => 'required',
// 'city' => 'required',
// 'postcode' => 'required',
// 'restDesc' => 'required',
// 'telNumb' => 'required',
// 'resWebsite' => 'required',
// 'restDesc' => 'required',
// 'business_id' => 'unique:busprofiles,business_id',
];
$customMessages = ["Message"];
if( $request->hasFile('file'))
{
$request->file->store('public/uploads');
$filename = $request->file->getClientOriginalName();
$filesize = $request->file->getClientSize();
$request->file = $request->file->storeAs('public/uploads',$filename);
}
$this->validate($request, $rules, $customMessages);
Busprofile::create($request->all());
return redirect()->route('business.dashboard')
->with('success','Profile created successfully');
}
提前致谢!
如果有帮助;
return $request->file;
返回正确的网址
答案 0 :(得分:1)
问题出在Busprofile::create($request->all());
。您确实使用$filename = $request->file->getClientOriginalName();
获取原始文件名,但您的请求保持不变。
根据数据库需要手动为数据库条目创建数组。
$data = ['filename' => $request->file->getClientOriginalName(),
...,
];
和
Busprofile::create($data);