为什么“POST”方法没有传递“type = file”变量?

时间:2012-06-04 05:48:40

标签: post file-upload html5-video

我的代码上传了视频文件,但在我扩展表单后,它停止了上传。所有其他变量都传递好,但文件变量不是空白。

我尝试将上传逻辑与网络上的类似示例进行比较,但无法看到我所做的更改导致其失败。在下面的列表中,我删除了所有不相关的代码。当此代码运行时,它返回“错误”。

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
if (isset($_FILES['urlvideo'])) {
  move_uploaded_file($_FILES['urlvideo']['tmp_name'], "{$_FILES['urlvideo']['name']}");
} else {
  echo('Error');
  exit();
}
?>  
<!DOCTYPE HTML>
<html>
  <body>
    <form action="videotest.php"
          method="post"
         enctype="multipart/form-data">   
      Upload video:
      <input type="file" name="urlvideo" /><br>
      <input type="submit"
            value="Submit"/>
    </form>
  </body>
</html>
<?php ob_end_flush(); ?>

感谢您抽出宝贵时间阅读本文。

1 个答案:

答案 0 :(得分:0)

使用此代码。

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
if ( $_POST ) {
    if (isset($_FILES['urlvideo'])) {
      move_uploaded_file($_FILES['urlvideo']['tmp_name'], "{$_FILES['urlvideo']['name']}");
    } else {
      echo('Error');
      exit();
    }
}
?>  
<!DOCTYPE HTML>
<html>
  <body>
    <form action="testup.php"
          method="post"
         enctype="multipart/form-data">   
        <input type="hidden" name="method" value="post" /><!-- for check $_POST before if isset $_FILES-->
      Upload video:
      <input type="file" name="urlvideo" /><br>
      <input type="submit"
            value="Submit"/>
    </form>
  </body>
</html>

这是因为你在显示表单之前放了 if(isset($ _FILES )。