没有指定输入文件 - php

时间:2014-10-16 16:01:28

标签: php apache

我是非常新的PHP,但之前使用过javascript和html。我正在我自己的计算机上托管一个带有apache的服务器,仅用于测试php。我在上面安装了php作为cgi,一切正常。我做了一些测试,只是为了了解它是如何工作的,但当我尝试制作文件上传表格并用php读取文件时:

//uploadFile.php
<html>
    <head>
    </head>
    <body>
        <form action="uploadFile.php" id="form" method="POST" enctype="multipart/form-data">
            <input type="file" name="uploadFile">
            <input name="submit" value="upload" type="submit">
        </form>

        <?php
            echo $_FILES["uploadFile"]["name"];
        ?>
    </body>

</html>

我突然收到了消息:

  

未指定输入文件

只有那个!它甚至没有说这是一个错误。我尝试过这个非常简单的PHP脚本,之前有效:

<?php
echo "Working";
?>

但我还是“没有指定输入文件”。我尝试的每个php文件都给了我这个错误,它表明问题不在我的代码中。当我尝试一个普通的.html文件没有PHP它工作。我已经尝试过研究它,像godaddy上的peaple主机这样的接缝得到了这个消息,但我找不到解决方案。

有人知道解决方案或有任何关于如何解决此问题的提示。

1 个答案:

答案 0 :(得分:1)

根据您在提交此答案后更改问题的originally posted code/question

对于POST / FILES变量或任何变量,PHP都区分大小写。

您有name="uploadfile"然后$_FILES["uploadFile"]

将其更改为$_FILES["uploadfile"]

Ff不同。

或保留$_FILES["uploadFile"]并将name="uploadfile"更改为name="uploadFile"

无论哪种方式,它们都在字母大小匹配。


阅读有关上传文件的手册:


编辑:(示例)

旁注:

确保该文件夹存在并具有正确的写入权限。您可能需要调整$uploads_dir = 'uploads';的方式,具体取决于您执行代码的位置。

<html>
    <head>
    </head>
    <body>
        <form action="" id="form" method="POST" enctype="multipart/form-data">
            <input type="file" name="uploadFile">
            <input name="submit" value="upload" type="submit">
        </form>

<?php
if(isset($_POST['submit'])){

$uploads_dir = 'uploads';
foreach ($_FILES["uploadFile"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["uploadFile"]["tmp_name"][$key];
        $name = $_FILES["uploadFile"]["name"][$key];
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
  }

}

?>
    </body>

</html>
  

“当我尝试使用没有php的普通.html文件时,它可以正常工作。”

确保我的回答中的代码用作.php文件,而不是.html

您还应该联系GoDaddy关于此事的技术支持,并了解PHP是否确实可供您使用。


error reporting添加到文件的顶部,这有助于查找错误。

error_reporting(E_ALL);
ini_set('display_errors', 1);

旁注:错误报告应仅在暂存时完成,而不是生产。