Php 无法从文件()中读取图像
我试图让我的用户上传他们的个人资料图像,当我点击提交按钮保存更改时,将出现此错误 Decoder.php第20行中的NotReadableException: 无法从文件()读取图像。 这是我在控制器中的更新方法:Php 无法从文件()中读取图像,php,laravel,Php,Laravel,我试图让我的用户上传他们的个人资料图像,当我点击提交按钮保存更改时,将出现此错误 Decoder.php第20行中的NotReadableException: 无法从文件()读取图像。 这是我在控制器中的更新方法: public function update(Request $request, $id) { $user = User::find($id); $this->validate($request, array( 'fi
public function update(Request $request, $id)
{
$user = User::find($id);
$this->validate($request, array(
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'gender' => 'required',
'birthday' => 'required|date_format:d/m/Y|max:25',
'email' => [
'required', 'string', 'nullable', 'email', 'max:255',
Rule::unique('users')->ignore($user->id),
],
'password' => 'nullable|string|min:6|confirmed',
'user_image' => 'sometimes|image',
));
$user = User::find($id);
$user->first_name = $request->input('first_name');
$user->last_name = $request->input('last_name');
$user->gender = $request->input('gender');
$user->birthday = $request->input('birthday');
$user->email = $request->input('email');
if (trim(Input::get('password')) != '') {
$user->password = Hash::make(trim(Input::get('password')));
}
//store user image
if ($request->hasFile('user_image')) {
$avatar = $request->file('user_image');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
$location = public_path('avatars/' . $filename);
Image::make($avatar)->resize(200, 200)->save($location);
$user->image = $filename;
}
$user->save();
Session::flash('success', 'Your information was successfully updated.');
return redirect()->route('jobseeker.profile', $user->id);
}
这是我的刀片模板图像部分:
<div class="panel-body">
<p>
@if (Auth::user()->image && File::exist(public_path("avatars/" . Auth::user()->image)))
<img src="{{ Auth::user()->image }}" alt="user image" class="img-responsive" >
@else
<img src="{{ 'https:://www.gravatar.com/avatar/' . md5(strtolower(trim(Auth::user()->email))) . '?s=200&d=wavatar' }}" alt="user image" class="img-responsive" >
@endif
</p>
<p>
{{ Form::label('user_image', 'Upload Your Image') }}
{{ Form::file('user_image') }}
</p>
</div>
@如果(Auth::user()->image&&File::exist(公共路径(“avatars/”.Auth::user()->image)))
image}“alt=”user image“class=”img responsive“>
@否则
电子邮件))。?s=200&d=wavatar'}“alt=“user image”class=“img responsive”>
@恩迪夫
{{Form::label('user_image','Upload Your image')}
{{Form::file('user_image')}
我使用的是Laravel5.4,上传图片时我使用的是干预图片
知道为什么吗?我解决了删除Image::make的问题,并将代码更改为:
//store user image
if ($request->hasFile('user_image')) {
$avatar = $request->file('user_image');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
$location = public_path('avatars/');
$request->file('user_image')->move($location, $filename);
$user->image = $filename;
}
如果您有更好的想法,请与他人分享。在您的图像中尝试$avatar->path()而不是$avatar,并声明您的意思是这样的吗<代码>$filename=time()$化身路径()->getClientOriginalExtension()代码>不,在你的图像制作代码中,
图像::制作($avatar->path())
@SapneshNaik抱歉,我真的不明白!:(请告诉我代码好吗?Image::make($avatar->path())->调整大小(200200)->保存($location);