-2

这是我首先拥有的代码

$allowedExts = array("gif", "jpeg", "jpg", "PNG", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif") // .gif
|| ($_FILES["file"]["type"] == "image/jpeg") // .jpeg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/PNG") // .PNG
|| ($_FILES["file"]["type"] == "image/png")) //.png
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts)

我想要的是这样我也能够上传 .RAR/.ZIP 文件。

4

3 回答 3

1

您只需将扩展名添加到 $allowedExts 数组,并在检查中添加文件类型的 mime 类型,如下所示:

$allowedExts = array("gif", "jpeg", "jpg", "PNG", "png", "zip", "rar");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif") // .gif
|| ($_FILES["file"]["type"] == "image/jpeg") // .jpeg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/PNG") // .PNG
|| ($_FILES["file"]["type"] == "image/png")) //.png
|| ($_FILES["file"]["type"] == "application/x-rar-compressed")) //.rar (can also use application/octet-stream)
|| ($_FILES["file"]["type"] == "application/zip")) //.zip (can also use application/octet-stream)
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts)
于 2013-03-25T17:57:38.373 回答
1

您并没有真正给我们太多的帮助,但是根据我们掌握的信息,您会做类似...

$allowedExts = array("gif", "jpeg", "jpg", "PNG", "png","rar","zip");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif") // .gif
|| ($_FILES["file"]["type"] == "image/jpeg") // .jpeg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/jpg") // .jpg
|| ($_FILES["file"]["type"] == "image/PNG") // .PNG
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "application/x-rar-compressed")
|| ($_FILES["file"]["type"] == "application/zip"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts)
于 2013-03-25T17:56:19.697 回答
1

你不能相信正在发生的事情,$_FILES["file"]["type"]因为它是由浏览器发送的,很容易被欺骗。

我建议您使用fileInfo扩展名来启动,您可以在其中实际检查服务器端的 mime 类型。

然后使用 while/black list 数组来允许/拒绝用户上传的扩展类型

于 2013-03-25T17:58:59.397 回答