在更新记录时,我创建了一个使用文件上传替换图像的选项,但是在$ request-> file('headerbanner')中这样做时,它会以/ tmp / phpCccApH的形式保存在数据库中>
控制器代码:
public function update(Request $request, $id)
{
$clientnewstore = Clientusers::find($id);
if($request->hasFile('headerbanner')) {
$headerbanner = $request->file('headerbanner');
$mod_headerbanner= date('Y-m-d').'-'.'MQ'.rand(1, 999).'-'.$headerbanner->getClientOriginalName();
$headerbanner->storeAs(public_path().'banners',$mod_headerbanner);
$request['headerbanner'] = $mod_headerbanner;
}
if($request->hasFile('footerbanner')) {
$footerbanner = $request->file('footerbanner');
$mod_footerbanner= date('Y-m-d').'-'.'MQ'.rand(1, 999).'-'.$footerbanner->getClientOriginalName();
$footerbanner->storeAs('banners',$mod_footerbanner);
$request['footerbanner'] = $mod_footerbanner;
}
Clientusers::find($id)->update($request->all());
$request->session()->flash('message','Record Successfully Updated');
return redirect('/user_accounts');
}
HTML文件
<form action="/user_accounts" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<h4> Header / Footer Settings</h4>
<div class="form-group row py-2">
<div class="col-sm-6 pr-4">
<label for="headerbanner">Header Banner</label>
<input type="file" class="form-control" id="headerbanner" name="headerbanner" />
</div>
<div class="col-sm-6">
<label for="footerbanner">Footer Banner</label>
<input type="file" class="form-control" id="footerbanner" class="form-control" name="footerbanner" >
</div>
</div>
<div class="float-right text-right">
<button type="submit" class="btn btn-success float-right">
<i class="fas fa-check px-2"></i> Save
</button>
</div>
答案 0 :(得分:0)
运行命令“ php artisan storage:link”
尝试以下类似方法。
if ($request->hasFile('footerbanner')) {
$file = $request->footerbanner;
$imageurl = Storage::disk('local')->put($current_timestamp . '-' . $file->getClientOriginalName(), file_get_contents($file), 'public');
; // To make file unique in the same folder.
}
之后,您可以将该图像URL存储到模型中。
答案 1 :(得分:0)
尝试一下:
there are 1000000 rows
3.338970422744751
注意:请确保您在storage / app / public /
中有上传文件夹答案 2 :(得分:0)
我已使用以下功能保存我的个人资料图像-您可以尝试此操作。我刚刚按照您的要求编辑了图像名称。
public function save_profile_image(Request $request)
{
$image = $request->file('profile_image');
$destinationPath = public_path('/profile_images');
$image_name = date('Y-m-d').'-'.'MQ'.rand(1, 999).'-'.$request->file('profile_image')->getClientOriginalName()
$image->move($destinationPath, $image_name);
$image_path = $destinationPath.'/'.$request->file('profile_image')->getClientOriginalName();
if (!File::exists($image_path)) {
return response()->json(['msg'=>'File not found','success'=>false,'code'=>401]);
}
$image_url = url('/public/profile_images/'.$image_name);
return $image_url;
}