Php 如何验证文件上载字段?

Php 如何验证文件上载字段?,php,Php,我似乎无法验证文件上载字段,以下是我的代码: <?php if (isset($_POST['submit'])) { if ($_POST['uploadFile']) { echo "File uploaded"; } else { echo "No file attempted to be uploaded"; } } ?> <form action=""

我似乎无法验证文件上载字段,以下是我的代码:

<?php

    if (isset($_POST['submit'])) {
        if ($_POST['uploadFile']) {
            echo "File uploaded";
        } else {
            echo "No file attempted to be uploaded";
        }
    }

?>

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="uploadFile" />
    <input type="submit" name="submit" />
</form>

您要查找的超全局文件是$\u文件

var_dump($_FILES); //to see what's happening with the uploaded files
要确保发出POST请求,您可以使用以下行:

if($_SERVER['REQUEST_METHOD'] == 'POST') {
   //A post request!
}

至于验证,请查看
是否已上载\u文件()
,然后继续阅读。

在本脚本中,我们为文件上载添加了一些限制。用户只能上载.gif或.jpeg文件,且文件大小必须小于20 kb:

<?php
if ((($_FILES["file"]["type"] == "image/gif")  
|| ($_FILES["file"]["type"] == "image/jpeg")  
|| ($_FILES["file"]["type"] == "image/pjpeg"))  
&& ($_FILES["file"]["size"] < 20000))  
      {  
      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";  
  }  
?>  

在用PHP上传文件时,我认为$\u FILES[$file]['error']是你最好的朋友!它将其分解为8种可能的情况,0表示文件上传正常,所以下面类似的内容应该可以做到这一点

if($_FILES[$file]['error']==0)
// proceed
else
switch($_FILES[$file]['error'])
// debugging

is_uploaded_文件已被弃用。@Alix,您在哪里确定的?is_uploaded_文件(PHP4>=4.0.3)和(由于PHP4.2.0,PHP会随文件数组返回一个适当的错误代码)。它不是真的被弃用,但是使用它没有任何意义,因为$u文件中的错误索引也有相同的作用,并且更具描述性。也请阅读此注释。或者您可以到Acard21发现此代码的地方亲自查看。没错,很抱歉我自己没有发布此链接,我不想因为基本脚本而受到表扬。
if($_FILES[$file]['error']==0)
// proceed
else
switch($_FILES[$file]['error'])
// debugging