带有Enctype的HTML表单打破$ _POST数据

时间:2015-03-17 00:31:21

标签: php html forms

现在有点令人困惑的问题。我正在尝试设置表单来上传视频。

以下表格:

        <form role="form" action="upload.php" method="post" enctype="multipart/form-data">
            <input type="hidden" name="upload" value="1">
            <div class="row">
                <div class="col-xs-6">
                    <span class="btn btn-lg btn-primary btn-block btn-file">
                        Browse... <input type="file" name="file">
                    </span>
                </div><!-- col-xs-6 -->

                <div class="col-xs-6">    
                    <h4 class="feedback-field text-centered">No file selected.</h4>
                </div><!-- col-xs-6 -->
            </div><!-- row -->

            <div class="row">
                <h4 class="error-field text-centered"></h4>
            </div><!-- row -->

            <div class="row">
                <div class="col-xs-4"></div>

                <div class="col-xs-4">
                    <input type="submit" name="submit" class="btn btn-primary btn-lg btn-block upload-btn disabled" value="Upload">
                </div>

                <div class="col-xs-4"></div>
            </div>
        </form>

以上是关于upload.php的相关PHP:

    if(isset($_POST['upload'])){

        // do things with the file here

    } else {

        echo "No file found.";
    }

不幸的是,似乎这个表单没有将任何文件传递到下一页。

正如您所看到的,表单中有一个&#39; enctype&#39;值,这在上传视频时是必需的。但是,当表单有值时,它会中断,并且页面上传了.php&#39;我们没有收到任何$ _POST数据(也就是说,它会显示找不到文件。&#39;消息。没有enctype,当然,$ _FILES是空的。

事情就是这样:我试过改变这个:

if(isset($_POST['upload'])){

对此:

if(isset($_FILES['file'])){

在哪种情况下,我还会收到“找不到文件”。&#39;信息。因此,无论表单是否具有&#39; enctype&#39;属性,它只是拒绝将文件传递给&#39; upload.php&#39;。

任何人都可以帮助我吗?我或多或少迷失了。谷歌没有给我任何好的答案。

编辑:不知何故,这个问题在被发布的几秒钟内就被贬低了 - 比任何人都回答的要快。有人可能想要查看这些明显欺诈性的投票。

3 个答案:

答案 0 :(得分:0)

检查您的php.ini设置:

  

file_uploads On On

     

max_file_uploads 20 20

     

post_max_size 8M 8M

     

upload_max_filesize 2M 2M

     

max_execution_time 18000 300

     

max_file_uploads 20 20

     

max_input_time 300 300

     

memory_limit 256M 1024M

答案 1 :(得分:0)

为表单命名

<form role="form" action="upload.php" name="MyUpload" method="post" enctype="multipart/form-data">

更改提交输入的名称。

<input type="submit" name="VidUpload" class="btn btn-primary btn-lg btn-block upload-btn disabled" value="Upload">

检查提交是否已提交

if(isset($_POST['VidUpload'])){

  // do things with the file here
  echo "Form Submitted.";

} else {
  echo "No file found.";
}

答案 2 :(得分:0)

对于遇到同样问题的任何人,请查看此页面:

WAMP Uploading large File

这个问题提供了在php.ini文件中需要更改的值,以允许更大的文件上传(这就是破坏表单的原因)。