有没有办法确保收到的文件中包含图像PHP
?
对扩展程序的测试对我来说并不十分安全,因为您可以上传一个script
并将其扩展名更改为所需的扩展名。
我也尝试使用getimagesize
,但是可能有一些更适合该特定问题的东西。
获取mimetype的本机方法:
对于PHP <5.3,请使用mime_content_type()对于PHP> = 5.3,请使用finfo_open()或mime_content_type()
获得MimeType的替代方法是exif_imagetype和getimagesize,但是这些方法依赖于安装适当的库。此外,它们可能仅返回图像模仿类型,而不是magic.mime中给出的整个列表。
虽然mime_content_type
可以从PHP 4.3获得并且是FileInfo扩展的一部分(自PHP
5.3起默认启用,但Windows平台除外,该平台必须手动启用
如果您不想打扰系统上可用的功能,只需将所有四个函数包装到一个代理方法中,该方法将函数调用委托给任何可用的方法,例如
function getMimeType($filename)
{
$mimetype = false;
if(function_exists('finfo_open')) {
// open with FileInfo
} elseif(function_exists('getimagesize')) {
// open with GD
} elseif(function_exists('exif_imagetype')) {
// open with EXIF
} elseif(function_exists('mime_content_type')) {
$mimetype = mime_content_type($filename);
}
return $mimetype;
}
问题内容: 我正在使用JAI并使用以下文件创建文件: 我在该行之前检查文件是否存在。但是,如何检查文件是.bmp还是.tiff还是图像文件? 有人知道吗? 问题答案: Image Magick项目具有识别图像的功能,并且有一个用于Image Magick的Java包装器,称为JMagick,我认为您可能需要考虑而不是重新发明轮子: http://www.jmagick.org 我一直在使用Imag
问题内容: 我需要查看CDN上是否存在特定图像。 我尝试了以下方法,但不起作用: 即使图像存在或不存在,它始终会显示“文件存在”。我不确定为什么它不起作用… 问题答案: 您至少需要使用引号将文件名括起来(作为字符串): 另外,请确保已正确验证。然后,只有在您的PHP配置中将其激活时,它才起作用
问题内容: 除了检查每个可能的扩展名外,我如何检查文件是mp3文件还是图像文件? 问题答案: 您可以使用来识别图像文件。 要查找有关MP3和其他音频/视频文件的更多信息,建议使用 php- mp4info getID3() 。
问题内容: 我正在尝试查看文件是否包含发送到页面的字符串。我不确定这段代码有什么问题: 问题答案: 简单得多: 回应有关内存使用的评论:
问题内容: 尝试检查我要读取的文件是否存在。 问题答案: 这是另一种方法: 包装的用途和功能: p_DirName in varchar2, – schema object name p_FileName in varchar2 ) return number is l_file_loc bfile; begin l_file_loc := bfilename(upper(p_DirName),
我正在编写一个C库,用于在不同格式/编解码器之间对音频进行解码和编码。在加载所需的编解码器库之前,我有一个快速检测格式的例程。 对于WAV文件,可以在文件开头简单查找ASCII值“RIFF”和“WAVE”。这同样适用于FLAC,我们可以简单地读取前4个字节,即“FLAC”。 但是如何快速检测文件是否是MP3?我不能依赖文件扩展名。我也无法尝试解码第一个MP3帧,因为文件开头可能有其他数据(例如:I