我正在制作一个 PHP 脚本来检索用户给定的 zip 文件,解压缩它,并使用ZipArchive
对象对其中的文件做一些事情。我怎样才能避免像42.zip这样的拉链炸弹?
问问题
3182 次
1 回答
1
查看 zip_entry_filesize:http ://php.net/manual/en/function.zip-entry-filesize.php
它应该为您提供 .zip 文件中未压缩存档的实际大小。这是手册页评论中提供的示例函数:
function get_zip_originalsize($filename) {
$size = 0;
$resource = zip_open($filename);
while ($dir_resource = zip_read($resource)) {
$size += zip_entry_filesize($dir_resource);
}
zip_close($resource);
return $size;
}
$size = get_zip_originalsize('file.zip');
echo "original size: $size bytes\n";
于 2012-11-07T22:37:41.143 回答