尝试上传文件后,$ _FILES始终为空

Jon*_*han -1 php

我很难让文件上传在php中工作.

  • 我正在运行php 5,所以我应该有$ _FILES变量
  • 我的php.ini显示文件上传已打开,我不是要上传一个太大的文件
  • 我的磁盘上有足够的空间

预期:有关上传文件的信息.得到:空$ _FILES

这是我的表格/剧本.我究竟做错了什么?

<!DOCTYPE html> 
<html lang="en">
<body> 

<?php 

if($_SERVER['REQUEST_METHOD'] !== "POST"):  ?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label for="file">Upload a file:</label> 
<input type="file" name="file" id="file"><br/> 
<button type="submit">Analyze</button> 
</form>    

<?php endif; ?> 

<?php if($_SERVER['REQUEST_METHOD'] == "POST"):  

    print_r($_FILES);  // debugging

if ($_FILES["file"]["size"] < 20000) 
{
    if ($_FILES["file"]["error"] > 0)
    {
        echo "<p>Error: " . $_FILES["file"]["error"] . "</p>";
    }
    else
    {
        echo "<p>Upload: " . $_FILES["file"]["name"] . "</p>";
        echo "<p>Type: " . $_FILES["file"]["type"] . "</p>";
        echo "<p>Size: " . ($_FILES["file"]["size"] / 1024) . " kB</p>";
        echo "<p>Stored in: " . $_FILES["file"]["tmp_name"] . "</p>";
    }
}
else
{
    echo "Invalid file. Please make sure your file is a plain text file and is small enough for this program to analyze.";
}

endif; ?> 

</body> 
</html> 
Run Code Online (Sandbox Code Playgroud)

Joh*_*nde 9

您忘记了代码中的编码类型属性<form>:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" 
    enctype="multipart/form-data"> 
Run Code Online (Sandbox Code Playgroud)