我正在创建一个简单的webapp,我的学生可以使用它来将他们的项目(作为.zip文件)上传到我的服务器。这个应用程序需要.zip>解压缩>显示指向其网络项目的链接。
我正在使用这样的php函数来解压缩zip文件:
function openZip($file_to_open) {
global $target;
$zip = new ZipArchive();
$x = $zip->open($file_to_open);
if($x === true) {
$zip->extractTo($target);
$zip->close();
unlink($file_to_open);
} else {
die("There was a problem. Please try again!");
}
}
是否可以检查正在提取的文件的类型,并且只允许特定文件类型解压缩?并不是说我不相信我的学生......只是想确保没有恶意的东西进入我的服务器。
我的学生将上传简单的网页项目,所以我只想要提取.html,.css和.js(以及图像文件类型和目录)。
答案 0 :(得分:1)
查看ZipArchive::getFromName以从文件名中拉出Zip文件中的1个文件。您可能还想查看ZipArchive::getFromIndex
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE)
{
echo $zip->getFromName('testfromfile.php');
$zip->close();
}
else
{
echo 'failed';
}
答案 1 :(得分:0)
您可以随时尝试finfo_file():
$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo, "yourfile.zip");
finfo_close($finfo);