需要与IE兼容的文件类型检查脚本

时间:2012-12-08 10:42:05

标签: php file-upload

  

可能重复:
  uploaded file type check by PHP

我使用下面的脚本来检查文件类型,同时上传以限制文件上传到jpg / jpeg,png。但它不能用于IE(与mozilla一起工作)。所以我需要一个适用于所有浏览器的脚本。 / p>

$destination_path = getcwd().DIRECTORY_SEPARATOR;

$target_path = $destination_path . basename( $_FILES['myfile']['name']);
$types=array('image/png','image/jpeg');

if (in_array($_FILES['myfile']['type'], $types))
{
if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {   
$result = 1;
}
}

else
{
$result = 0;
}

2 个答案:

答案 0 :(得分:1)

IE为jpg设置了不同的文件类型标头,因此请将image/pjpeg添加到$types

$types=array('image/png','image/jpeg', 'image/pjpeg');

答案 1 :(得分:1)

谷歌上的一点点时间,你会发现它适用于所有人    浏览器

$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
$_FILES["file"]["name"]=$_FILES["file"]["name"];
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 50000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
if (file_exists("upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "upload/" . $_FILES["file"]["name"]);

  $filename= "upload/" . $_FILES["file"]["name"];
  }
}
 }
else
{
echo "Invalid file";
}