[英]How do I detect MIME type via a file handle in PHP?
我在 5.4 上并希望从我的文件句柄中检测 mime 类型。 我知道我可以保存一个文件,然后通过传递字符串来使用函数,但我们想避免使用字符串。 那么有没有没有任何字符串的方法?
不是传递文件句柄或字符串,而是传递SplFileObject 。 使用它,您无需直接调用文件系统函数即可获得对文件的 OO 访问权限。 仍然可以通过在对象上调用 ->getRealPath() 来使用需要路径名的函数。
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file( $fileObject->getRealPath() );
如果您的 PHP 安装支持Fileinfo :
$finfo = new finfo;
$mime = $finfo->file($file, FILEINFO_MIME);
finfo_close($finfo);
$file
是$file
的完整路径。 $mime
将包含它的 MIME 类型,例如 'image/jpeg' 表示 JPG 图像或 'text/x-php' 表示 PHP 脚本。
使用fileinfo
$fileinfo = finfo_file($finfo, $file, FILEINFO_MIME);
finfo_close($finfo);
或者,您可以采用面向对象的方式:
$finfo = new finfo();
$file = '/path/to/file/';
$fileinfo = $finfo->file($file, FILEINFO_MIME);
使用stream_get_meta_data提取uri
$mime = mime_content_type(
stream_get_meta_data($fh)['uri']
);
$fh
是我们的文件句柄
AFAIK 文件内容字节中没有任何内容专门告诉 mime 类型。 您有两个选择:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.