【发布时间】:2016-11-03 07:39:58
【问题描述】:
我正在使用 Laravel 5.3,
我使用 javascript 裁剪图像并使用 ajax 上传。
上传时将裁剪后的图像更改为 blob 文件。
但是在后台,如何判断blob文件是图片呢?
public function changeAvatar(Request $request)
{
$user = \Auth::user();
$blob = $request->croppedImage;
$destinationPath = 'images/uploads/';
$fileName = $user->id . '_' . time() . '.png';
$file = file_put_contents($destinationPath.$fileName, $blob);
$input = array('image' => $file);
$rules = array(
'image' => 'image'
);
$validator = \Validator::make($input, $rules);
if ( $validator->fails() ) {
return \Response::json([
'success' => false,
'errors' => $validator->getMessageBag()->toArray()
]);
}
$user ->avatar = '/'.$destinationPath.$fileName;
$user ->save();
return \Response::json([
'success'=>true,
'avatar'=>asset($destinationPath.$fileName),
]);
}
文件是图片,但错误总是这样:
{"success":false,"errors":{"image":["image must be an image."]}}
【问题讨论】:
标签: javascript php laravel