【发布时间】:2023-04-04 16:03:01
【问题描述】:
我的网站上有上传功能,只允许上传 PDF。如何检查上传的文件是否仅为 PDF?就像getimagesize() 可以验证图像文件一样。
有什么方法可以检查文件是PDF吗?我的代码如下:
$whitelist = array(".pdf");
foreach ($whitelist as $item) {
if (preg_match("/$item\$/i", $_FILES['uploadfile']['name'])) {
}
else {
redirect_to("index.php");
}
}
$uploaddir = 'uploads/';
$uploadfile = mysql_prep($uploaddir . basename($_FILES['uploadfile']['name']));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
echo "succussfully uploaded";
}
函数redirect_to 和mysql_prep 由我定义。但是可以使用标头更改 mime 类型。那么有什么方法可以检查文件是否为原始pdf?
【问题讨论】:
-
为什么
if是空的?请为您的代码使用适当的缩进,否则会发生不好的事情。 -
我只是想检查一下是不是机器......?
-
只需做:
if (!preg_match("/$item\$/i", $_FILES['uploadfile']['name'])) { redirect_to("index.php"); } -
这不是答案@PeeHaa ..我已经这样做了....如何检查 pdf 条目,就像 getimagesize() 函数检查图像文件
-
不是答案,而是评论。我在告诉你如何改进你的代码:)