Laravel图像更新

时间:2018-04-20 09:38:38

标签: php laravel laravel-5 laravel-5.5 laravel-5.6

我正在使用Laravel 5.6进行管理面板,我遇到了productController --resource update的问题。

我的商店:

protected $appends = ['your_attribute_here'];

和我的更新:

public function getYourAttributeHereAttribute()
{
    return "some value or model attribute";
}

商店部分正在运作但更新部分保存文件名数据库,但图片不会在images / urunler中移动。

我的php版本是7.2.4,我正在使用Laravel 5.6。

2 个答案:

答案 0 :(得分:0)

删除这些代码。

$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

答案 1 :(得分:0)

这对我有用:

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"放在打开的表单中。