Laravel 图片更新
Laravel Image Update
我在 Laravel 5.6 中做一个管理面板,我在 productController --resource 更新时遇到问题。
我的店铺是这样的:
if($request->hasfile('filename'))
{
$file = $request->file('filename');
$name=$file->getClientOriginalName();
$image_resize = Image::make($file->getRealPath());
$image_resize->resize(590, 590);
$image_resize->save(public_path('/images/urunler/' .$name));
}
$urun = new Urun();
$urun->k_id=$request->get('k_id');
$urun->ad=$request->get('ad');
$urun->form=$request->get('form');
$urun->icerik=$request->get('icerik');
$urun->ticari_sekli=$request->get('ticari_sekli');
$urun->filename=$name;
$urun->save();
return redirect('/urunler')->with('success','Ürün Başarı İle Eklendi.');
我的更新如下:
$urun= Urun::findOrFail($id);
$urun->update($request->all());
if ($request->hasFile('filename'))
{
$file = $request->file('filename');
$name=$file->getClientOriginalName();
$img = Image::make($file->getRealPath());
$img->resize(590, 590);
$img = Image::make($file->getRealPath())->resize(590, 590)->insert(public_path('/images/urunler/' .$name));
$img->save(public_path('/images/urunler/' .$name));
$urun->image = $name;
}
$urun->save();
return redirect('/urunler')->with('success','Ürün Başarı İle Güncellendi.');
存储部分正在工作,但更新部分保存了一个文件名数据库,但图像在 images/urunler 中没有移动。
我的 php 版本是 7.2.4,我正在使用 Laravel 5.6。
删除这些代码。
$img = Image::make($file->getRealPath())->resize(590, 590)->insert(public_path('/images/urunler/' .$name));
$img->save(public_path('/images/urunler/' .$name));
之后。添加这些代码。
$location = public_path('/images/urunler/'.$name);
Image::make($file->getRealPath())->resize(590, 590)->save($location);
试一试。
解决方法:将相关代码改成这样。
$location = public_path('/images/urunler/'.$name);
Image::make($file->getRealPath())->resize(590, 590)->save($location);
$urun->filename= $name;
然后添加
$this->validate(request(),[
'k_id' => 'required',
'ad' => 'required',
'form' => 'required',
'icerik' => 'required',
'ticari_sekli' => 'required',
'filename'=>'required' ]);
PS: 文件名必须是必需的。不需要|图像。这不是图像。它只是名字。
在该请求文件名之后。像那样:$urun->filename= $name;
不要 $urun->image= $name;
。因为没有$urun->image
.
这对我有用:
if ($request->file('filename')) {
$file = $request->file('filename');
$destinationPath = $_SERVER['DOCUMENT_ROOT'] . '/images/urunler/';
$file->move($destinationPath, 'FILENAME.' . $file->getClientOriginalExtension());
}
只需将 FILENAME
编辑为您想要的文件名或将 FILENAME
替换为 $file->getClientOriginalName();
文件将保存在public/images/urunler/文件夹
编辑:
我能想到的最后一件事是:在表单打开标记位置 enctype="multipart/form-data"
。这说明您的表单存在正常数据和可能的文件。可能仍然有不允许的文件,因此也将 files="true"
放在打开的表格中。
我在 Laravel 5.6 中做一个管理面板,我在 productController --resource 更新时遇到问题。
我的店铺是这样的:
if($request->hasfile('filename'))
{
$file = $request->file('filename');
$name=$file->getClientOriginalName();
$image_resize = Image::make($file->getRealPath());
$image_resize->resize(590, 590);
$image_resize->save(public_path('/images/urunler/' .$name));
}
$urun = new Urun();
$urun->k_id=$request->get('k_id');
$urun->ad=$request->get('ad');
$urun->form=$request->get('form');
$urun->icerik=$request->get('icerik');
$urun->ticari_sekli=$request->get('ticari_sekli');
$urun->filename=$name;
$urun->save();
return redirect('/urunler')->with('success','Ürün Başarı İle Eklendi.');
我的更新如下:
$urun= Urun::findOrFail($id);
$urun->update($request->all());
if ($request->hasFile('filename'))
{
$file = $request->file('filename');
$name=$file->getClientOriginalName();
$img = Image::make($file->getRealPath());
$img->resize(590, 590);
$img = Image::make($file->getRealPath())->resize(590, 590)->insert(public_path('/images/urunler/' .$name));
$img->save(public_path('/images/urunler/' .$name));
$urun->image = $name;
}
$urun->save();
return redirect('/urunler')->with('success','Ürün Başarı İle Güncellendi.');
存储部分正在工作,但更新部分保存了一个文件名数据库,但图像在 images/urunler 中没有移动。
我的 php 版本是 7.2.4,我正在使用 Laravel 5.6。
删除这些代码。
$img = Image::make($file->getRealPath())->resize(590, 590)->insert(public_path('/images/urunler/' .$name));
$img->save(public_path('/images/urunler/' .$name));
之后。添加这些代码。
$location = public_path('/images/urunler/'.$name);
Image::make($file->getRealPath())->resize(590, 590)->save($location);
试一试。
解决方法:将相关代码改成这样。
$location = public_path('/images/urunler/'.$name);
Image::make($file->getRealPath())->resize(590, 590)->save($location);
$urun->filename= $name;
然后添加
$this->validate(request(),[
'k_id' => 'required',
'ad' => 'required',
'form' => 'required',
'icerik' => 'required',
'ticari_sekli' => 'required',
'filename'=>'required' ]);
PS: 文件名必须是必需的。不需要|图像。这不是图像。它只是名字。
在该请求文件名之后。像那样:$urun->filename= $name;
不要 $urun->image= $name;
。因为没有$urun->image
.
这对我有用:
if ($request->file('filename')) {
$file = $request->file('filename');
$destinationPath = $_SERVER['DOCUMENT_ROOT'] . '/images/urunler/';
$file->move($destinationPath, 'FILENAME.' . $file->getClientOriginalExtension());
}
只需将 FILENAME
编辑为您想要的文件名或将 FILENAME
替换为 $file->getClientOriginalName();
文件将保存在public/images/urunler/文件夹
编辑:
我能想到的最后一件事是:在表单打开标记位置 enctype="multipart/form-data"
。这说明您的表单存在正常数据和可能的文件。可能仍然有不允许的文件,因此也将 files="true"
放在打开的表格中。