PHP - 获取MIME类型的Zip内容

时间:2015-02-05 10:33:39

标签: php mime-types ziparchive

我在过去的几天里一直在努力解决这个问题:我想要做的是在实际提取之前阅读zip存档的真实mime类型的内容。我之后需要用php解析内容,所以我想确保没有假的mime已经放入zip中,而且我没有列入黑名单。 我显然可以检查扩展名,但我不能保证它与真正的哑剧比赛。有什么办法吗?我尝试了如下流:

for($i = 0; $i < $zip->numFiles; $i++) {
                $entry = $zip->getNameIndex($i);
                $entry_data = $zip->getStream($entry);
}

但是我无法从文件句柄中检索mime类型。我也试过

$zip_entry = 'zip://'.$tmp.'#'.$entry;

并使用finfo,但$ tmp是临时上传资源的名称(即zip),因此file_exists总是返回false,我不能使用file_get_contents。 在提取之前我有机会让finfo使用上传的zip的内容吗?或者还有其他最佳做法可以防止错误的格式上传吗? 提前谢谢!

编辑:解决了! ZipArchive :: getFromIndex实际上可以传递给finfo缓冲区

$finfo->buffer($zip->getFromIndex($i))

0 个答案:

没有答案