我正在使用这个PHP File Upload示例。
我看到 $ _ FILES [“file”] [“type”] 是上传文件的类型。
当他们后来根据这些类型对文件上传施加限制时,看起来它们都是图像类型。
这是PHP:
<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>
对于他们的四(4)$allowedExts
,他们定义了六(6)$_FILES["file"]["type"]
。
我需要修改我的脚本以允许更多扩展名:
'txt', 'doc', 'docx', 'xls', xlsx', 'zip', 'pdf'
我进行了搜索,试图找出我需要过滤的文件类型,但我遇到的最好的是HTML enctype Attribute,但它并没有告诉我需要编写哪些类型的代码
我能够了解到这些类型 NOT 与MIME类型相同,所以我不能只使用它们。
这可能就像知道PHP调用它一样简单。
答案 0 :(得分:2)
$ allowedExts = array(“gif”,“jpeg”,“jpg”,“png”,“txt”,“doc”,“docx”,“xls”,“xlsx”,“zip”,“pdf “);
MIME-Types如下
.txt - text/plain
.doc - application/msword
.docx - application/vnd.openxmlformats-officedocument.wordprocessingml.document
.xls - application/vnd.ms-excel
.xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.zip - application/zip
.pdf - application/pdf