Php 拉维图像更新
我在Laravel5.6中做一个管理面板,我在productController——资源更新中遇到了一个问题 我的店铺如下:Php 拉维图像更新,php,laravel,laravel-5,laravel-5.5,laravel-5.6,Php,Laravel,Laravel 5,Laravel 5.5,Laravel 5.6,我在Laravel5.6中做一个管理面板,我在productController——资源更新中遇到了一个问题 我的店铺如下: if($request->hasfile('filename')) { $file = $request->file('filename'); $name=$file->getClientOriginalName(); $image_resize = Imag
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.');
我的更新如下:
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,我使用的是Laravel5.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/文件夹中
编辑:
我能想到的最后一件事是:在表单opentagplaceenctype=“multipart/formdata”
中。这说明您的表单存在正常数据和可能的文件。可能仍有不允许的文件,因此也将files=“true”
放在打开的表单中。检查dd($request->hasFile('filename'))返回false或true?false:(怎么办?请求中没有文件,因此它永远不会执行您的if条件。抱歉,我不明白。同一个eror,名称已在数据库中注册,但未移动到文件中。我的最后一个问题是:您是否尝试了dd($request->hasFile('filename'));如果返回false,则您没有验证文件名。将此添加到函数顶部。或者您无法获得它。false:(我该怎么做?我正在存储更新此;$this->validate(request(),['k_id'=>'必需','ad'=>'必需','form'=>'必需','icerik'=>'必需','ticari_sekli'=>'必需','filename'=>'必需| image']);但你不是在传递文件名吗?我用额外的信息和可能的修复方法编辑了答案。@OğuzKorkmaz