PHP:我在一个文件夹中上传图片文件,其名称格式与postid_posttype_postserial.ext
类似,因此在显示特定博客文章时我会根据帖子ID使用此格式,帖子类型为帖子。但这里的问题是我没有该文件的扩展名。所以这是实际的问题,我如何得到一个文件的扩展名,我只知道名称(在name.ext中)而不是扩展名。
仅供参考我搜索了这个,我发现很少有函数返回扩展名,但你必须传递一个带扩展名的完整文件名才能获得有关该文件的信息。
答案 0 :(得分:2)
在您的情况下,您需要获取文件的 mime类型,然后在PHP中执行switch
语句。您可以通过以下方式获取文件的mime类型:
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$mime_type = finfo_file($finfo, $postid_posttype_postserial_file);
finfo_close($finfo);
$mime_types = array(
'image/gif' => '.gif',
'image/jpeg' => '.jpg',
// etc.
);
$ext = array_key_exists($mime_type, $mime_types) ? $mime_types[$mime_type] : false;
echo $ext;
了解详情:http://www.php.net/manual/en/function.finfo-file.php
更新2:正如评论所指出的,将switch
替换为array
匹配更为优雅。