Javascript 如何检查blob文件是否为Laravel中的图像?
我使用的是LaravelJavascript 如何检查blob文件是否为Laravel中的图像?,javascript,php,laravel,Javascript,Php,Laravel,我使用的是Laravel5.3, 我用javascript裁剪图像,并用ajax上传。 上载时,裁剪的图像将更改为blob文件 但在后端,如何检查blob文件是否为映像 public function changeAvatar(Request $request) { $user = \Auth::user(); $blob = $request->croppedImage; $destinationPath = 'images/uploads/'; $fil
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."]}}
如果此操作有效,请尝试此操作:
将blob写入目标路径后,请执行以下操作:
//...
$file = file_put_contents($destinationPath.$fileName, $blob);
$uploadedFile = new \Illuminate\Http\UploadedFile($file, "dummy");
$input = array('image' => $uploadedFile);
//...
Laravel的图像验证要求该文件是UploadedFile的实例,才能通过验证。如果可以,请尝试以下操作:
将blob写入目标路径后,请执行以下操作:
//...
$file = file_put_contents($destinationPath.$fileName, $blob);
$uploadedFile = new \Illuminate\Http\UploadedFile($file, "dummy");
$input = array('image' => $uploadedFile);
//...
Laravel的图像验证要求文件是UploadedFile的实例才能通过验证。您可以使用第一位测试来测试blob的内容 这样,就不需要先将文件上载到文件系统,然后再删除
这里解释道:您可以使用第一位测试来测试blob的内容 这样,就不需要先将文件上载到文件系统,然后再删除
这里解释如下:UploadedFile.php第88行中的ErrorException:第28行的Symfony\Component\HttpFoundation\File\UploadedFile::u construct()缺少参数2,在D:\wnmp\www\laravel-5-3-dev\app\Http\Controllers\userscocontroller.php中调用,并定义我很抱歉。论点二是“原名”。提供一个伪字符串应该可以。UploadedFile.php第88行中的ErrorException:在第28行的D:\wnmp\www\laravel-5-3-dev\app\Http\Controllers\userscocontroller.php中缺少Symfony\Component\HttpFoundation\File\UploadedFile::\uu construct()的参数2,我很抱歉。论点二是“原名”。提供一个虚拟字符串应该可以。