Php 如何验证来自外部源的图像

Php 如何验证来自外部源的图像,php,laravel,Php,Laravel,用户可以将图片url粘贴到表单上,然后我的应用程序将其下载到本地服务器上。我想验证此图像,但我有问题 输入: $image = "http://example.com/image.png"; 规则,但不起作用 'image' => [ 'required', 'url', 'mimes:jpeg,png', 'max:5120', 'dimensions:min_width=400,min_height=400', new

用户可以将图片url粘贴到表单上,然后我的应用程序将其下载到本地服务器上。我想验证此图像,但我有问题

输入:

$image = "http://example.com/image.png";
规则,但不起作用

'image' => [
   'required', 
   'url', 
   'mimes:jpeg,png', 
   'max:5120', 
   'dimensions:min_width=400,min_height=400', 
   new FileExtensionRule(['png', 'jpg', 'jpeg'])
]

如何验证来自外部源的图像。

首先,您必须制定自定义规则

然后将逻辑放在RemoteImage类的这个函数中

public function passes($attribute, $value)
{
    return strtoupper($value) === $value;
}
获取文件类型

$image = "http://example.com/image.png";
$ext = pathinfo($image, PATHINFO_EXTENSION);
获取要验证的文件大小

使用卷曲

 $ch = curl_init('http://example.com/image.png');

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_HEADER, TRUE);
 curl_setopt($ch, CURLOPT_NOBODY, TRUE);

 $data = curl_exec($ch);
 $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

 curl_close($ch);
 echo $size;

您可以展开“不工作”吗?我有一条消息:属性无法上载。我如何检查图像像素大小?这是一个简单的列表($width,$height,$type,$attr)=getimagesize(“);echo$width;echo$height;非常感谢
 $ch = curl_init('http://example.com/image.png');

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt($ch, CURLOPT_HEADER, TRUE);
 curl_setopt($ch, CURLOPT_NOBODY, TRUE);

 $data = curl_exec($ch);
 $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);

 curl_close($ch);
 echo $size;