我已经在laravel 4中为文件(图像)定义了这个验证规则。
'image' => 'image|mimes:jpeg,jpg,bmp,png,gif'
这是我的HTML代码:
{{ Form::label('Image of the product') }} {{ Form::file('image') }}
现在,即使我选择了一个png,jpg图像
,我上传图片时也会遇到2个错误The image must be an image.
The image must be a file of type: jpeg, jpg, bmp, png, gif.
这是包含图片上传的更新操作:
public function update($id)
{
$product = Product::find($id);
$validator = Validator::make($data = Input::all(), Product::$rules);
if($validator->fails())
{
return Redirect::back()->withErrors($validator)->withInput();
}
$old_img = "";
if(isset($data['image']) and !empty($data['image']))
{
$image = Input::file('image');
$filename = time().'-'.$image->getClientOriginalName();
Image::make($image->getRealPath())->resize(468, 249)->save('public/img/products/'.$filename);
$data['image'] = 'img/products/'.$filename;
$old_img = $product->image;
}
$product->update($data);
File::delete('public/'.$old_img);
return Redirect::route('admin.products');
}
答案 0 :(得分:2)
通过添加
确保您的表单是多部分表单'files' => 'true'
到配置数组。
答案 1 :(得分:1)
首先将其添加到您的表单标记中enctype="multipart/form-data"
在您的验证中仅次于'file'=>'required|mimes:jpeg,png,jpg,gif,svg'
验证mimes并删除图片