我正在使用5.4并希望从我的文件句柄中检测mime类型。我知道我可以保存文件,然后通过传递字符串来使用函数,但我们想避免使用字符串。那么有没有任何方法的方式?
答案 0 :(得分:0)
不是传递文件句柄或字符串,而是传递SplFileObject。使用此方法,您可以在不直接调用文件系统函数的情况下对文件进行OO访问。通过在对象上调用 - > getRealPath(),仍然可以使用需要路径名的函数。
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file( $fileObject->getRealPath() );
答案 1 :(得分:0)
如果您的PHP安装支持Fileinfo:
$finfo = new finfo;
$mime = $finfo->file($file, FILEINFO_MIME);
finfo_close($finfo);
其中$file
将是文件的完整路径。然后$mime
将包含它的MIME类型,例如JPG图像的'image / jpeg'或PHP脚本的'text / x-php'。
答案 2 :(得分:0)
使用fileinfo
$fileinfo = finfo_file($finfo, $file, FILEINFO_MIME);
finfo_close($finfo);
或者,您可以采用面向对象的方式:
$finfo = new finfo();
$file = '/path/to/file/';
$fileinfo = $finfo->file($file, FILEINFO_MIME);
答案 3 :(得分:0)
使用stream_get_meta_data提取SELECT *
FROM users
WHERE LOWER( email ) LIKE '%@gmail.com'
OR LOWER( email ) LIKE '%@googlemail.com'
uri
$mime = mime_content_type(
stream_get_meta_data($fh)['uri']
);
是我们的文件句柄
答案 4 :(得分:-1)
AFAIK文件内容字节中没有任何内容专门告诉mime类型。您有两种选择: