这是我首先拥有的代码
$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文件。
答案 0 :(得分: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)
答案 1 :(得分: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)
答案 2 :(得分:1)
你不能相信$_FILES["file"]["type"]
上的内容,因为它是由浏览器发送的,这很容易被欺骗。
我建议您使用fileInfo扩展名来启动,您可以在其中实际检查服务器端的mime类型。
然后使用while / black列表数组来允许/拒绝用户上传的扩展名类型