使用PHP,我想检查上传的图像是jpg、gif、png还是svg格式。我发现exif_imagetype函数可以检查文件格式,但它不支持svg格式。有什么方法可以检测PHP中的svg格式吗?
要扩展Victors-answer,可以使用mime_content_type('/path/to/file');
(有关函数,请参阅php.net手册)并检查返回字符串是否等于image/svg+xml
。类似于:
public function isSvg($filePath = '/path/to/file')
{
return 'image/svg+xml' === mime_content_type($filePath);
}
mime_content_type(realpath('img/logo.svg'));
返回CCD_ 3。您的svg文件必须在第一行包含<xml>
标记,如下所述https://stackoverflow.com/a/46366819,类似<?xml version="1.0" encoding="iso-8859-1"?>
mime_content_type($filePath);
如果svg文件从<svg xmlns="http://www.w3.org/2000/svg" width="210" height="80">
启动,请小心我得到了"text/html";
pathinfo($_FILES['File']['name'], PATHINFO_EXTENSION)
尽可能使用内置功能,并且仅提取所需信息(选项=PATHINFO_EXTENSION)
试试这个-
$extensions= array("jpeg","jpg","png","svg","gif");
$file_ext = strtolower(end(explode('.',$file['name'])));
if(in_array($file_ext,$extensions)=== true){
...
...
}