上传文件-PHP-文件类型

上传文件-PHP-文件类型,php,Php,所以现在我有了 <?php if (($_FILES["fileToUpload"]["type"] == "image/gif" || $_FILES["fileToUpload"]["type"] == "image/jpeg" || $_FILES["fileToUpload"]["type"] == "image/png") && $_FILES["fileToUpload"]["size"] < 10000000) { move_uploaded_f

所以现在我有了

<?php if (($_FILES["fileToUpload"]["type"] == "image/gif" || $_FILES["fileToUpload"]["type"] == "image/jpeg" || $_FILES["fileToUpload"]["type"] == "image/png") && $_FILES["fileToUpload"]["size"] < 10000000)
  {
  move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
    "upload/" . $_FILES["fileToUpload"]["name"]);
  }
else
  {
  echo "Files must be either JPEG, GIF, or PNG and less than 10,000 kb";
  }

?>

我仍然在谈论else语句。我想我应该把一切都做好

下面是以前页面中的一些html

 <form enctype="multipart/form-data" action="upload.php" method="POST">
 Please choose a file: <input name="uploaded" type="file" /><br />
 <input type="submit" value="Upload" />
 </form> 

请选择一个文件:

但这不应该是问题

您访问“fileToUpload”,但您的html输入字段称为“upload”,因此$\u FILES[“fileToUpload”]为空…

您访问“fileToUpload”,但您的html输入字段称为“upload”,因此$\u FILES[“fileToUpload”]为空…

检查
['type]中提供的mime类型
部分$\u文件不安全。它是上传文件的客户端提供的数据,很容易被破坏。最好在服务器端检查文件类型并处理自己的数据,而不是信任客户机诚实:

if ($_FILES['uploaded'] === UPLOAD_ERR_OK) {
   // file was successfully uploaded
   $info = getimagesize($_FILES['uploaded']['tmp_name']);
   if (($info['mime'] != 'image/gif') && ($info['mime'] != 'image/jpeg')) {
        // not a jpeg
   } else {
       // upload went ok, do more processing
   }
} else {
   die("File upload error, code #{$_FILES['uploaded']['error']}");
}

检查$\u文件的
['type']
部分中提供的mime类型是不安全的。它是上传文件的客户端提供的数据,很容易被破坏。最好在服务器端检查文件类型并处理自己的数据,而不是信任客户机诚实:

if ($_FILES['uploaded'] === UPLOAD_ERR_OK) {
   // file was successfully uploaded
   $info = getimagesize($_FILES['uploaded']['tmp_name']);
   if (($info['mime'] != 'image/gif') && ($info['mime'] != 'image/jpeg')) {
        // not a jpeg
   } else {
       // upload went ok, do more processing
   }
} else {
   die("File upload error, code #{$_FILES['uploaded']['error']}");
}