【问题标题】:HTML/PHP File Upload Not ReceivingHTML/PHP 文件上传未接收
【发布时间】:2012-09-23 13:50:50
【问题描述】:

所以我在这里发布了一个较早的问题:upload

我尝试了解决方案,但现在无论它是否是正确的文件类型,它只会显示“无效文件”。这是我的html:

<form action="upload_file.php" method="post" enctype="multipart/form-data" target="my_iframe">
    Select a file: <input type="file" name="upload">
    <input type="submit">
</form>

这是我的upload_file.php:

$allowedExts = array("doc", "docx");
    $extension = end(explode(".", $_FILES["file"]["upload"]));

    if (($_FILES["file"]["size"] < 200000)
    && in_array($extension, $allowedExts)) {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
        else
        {
            echo "Upload: " . $_FILES["file"]["upload"] . "<br />";
            echo "Type: " . $_FILES["file"]["type"] . "<br />";
            echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

            if (file_exists("Proposals/" . $_FILES["file"]["upload"]))
            {
                echo $_FILES["file"]["upload"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"],
                "Proposals/" . $_FILES["file"]["upload"]);
                echo "Stored in: " . "Proposals/" . $_FILES["file"]["upload"];
            }
        }
    } else {
        echo "Invalid file";
    }

我也试过了:

$extension = pathinfo( $_FILES["file"]["upload"], PATHINFO_EXTENSION);

做了一个

die($extension);

在他们两个上,但 什么都没有 被打印出来。所以我有两个问题
1) 我上面的代码有什么问题
2) 在收到回复之前,如何隐藏 iframe?然后在用户阅读回复后有一个好的按钮让它消失?如果有帮助,这里是 iframe 代码:

<iframe name="my_iframe" src="upload_file.php"></iframe>

【问题讨论】:

    标签: php html iframe file-upload upload


    【解决方案1】:

    改变

    $_FILES["file"]["size"]
    

    $_FILES["upload"]["size"]
    

    对所有其他变量执行相同操作,根据您的 HTML,输入文件的名称属性是 upload,而不是 file

    <input type="file" name="upload">
                      HERE ----^
    

    【讨论】:

      【解决方案2】:

      查看本教程: http://www.w3schools.com/php/php_file_upload.asp

      应该是 $_FILES["upload"] 你犯了一个错误

      【讨论】:

        【解决方案3】:

        你有:

        if (($_FILES["file"]["size"] < 200000) && in_array($extension, $allowedExts)) {
        

        应该是 $_FILES["upload"]["size"] 因为你有

        <input type="file" name="upload">
        

        【讨论】:

          【解决方案4】:

          改变

          $_FILES["file"]["upload"]
          

          $_FILES["upload"]["name"]
          

          无处不在,与其他参考文献相同。所以;

          $_FILES["file"]["size"] **To** $_FILES["upload"]["size"]
          

          $_FILES["file"]["type"] **To** $_FILES["upload"]["type"]
          

          $_FILES["file"]["tmp_name"] **To** $_FILES["upload"]["tmp_name"]
          

          【讨论】:

          • 搜索并替换 $_FILES["file"]$_FILES['upload'] 应该可以解决问题
          猜你喜欢
          • 2012-09-23
          • 1970-01-01
          • 2023-02-06
          • 1970-01-01
          • 1970-01-01
          • 2012-06-04
          • 1970-01-01
          • 2019-08-28
          • 2016-03-28
          相关资源
          最近更新 更多