【问题标题】:POST array is empty when containing a file包含文件时 POST 数组为空
【发布时间】:2012-12-16 10:02:48
【问题描述】:

我有一个包含文件输入的简单 HTML 表单。当表单提交时没有文件,打印$_POST 数组会显示所有提交的数据。但是,当提交文件时,$_POST 不会打印出任何提交的数据。

谁能告诉我为什么?这是我的代码:

<?php
    print_r($_POST);
?>
<form action="test.php" method="post" enctype="multipart/form-data">
    <label for="myfile">Video File:</label>
    <input type="file" name="myfile" />
    <br /><br />
    <label for="mytitle">Title:</label><br />
    <input type="text" name="mytitle" size="55" maxlength="60" />
    <br /><br />
    <input type="submit" name="mysubmit" value="Submit Video for Approval" />
</form>

【问题讨论】:

  • 取决于你用来打印数据的函数...试试 var_dump()
  • 为什么取决于?我还没听说过这个
  • @ArtaexMedia 什么?打印数据不是问题,事实是数据甚至不存在。 echo $_POST['title']; 也没有给我任何东西。
  • @DannyF247 当你上传那个文件时你能达到post_max_size吗(那个文件非常接近/超过那个限制)?这将是一个非常极端的情况,无论如何 PHP 都应该错误地输出 AFAIK。让我看看我是否理解清楚:您在mytitle 中输入了一些内容,但它没有显示出来,是吗?

标签: php forms post file-upload


【解决方案1】:

您的脚本看起来不错。请检查您的服务器配置。也许你超过了 POST 限制(用 php.ini 中的 post_max_size 设置)

【讨论】:

  • 愚蠢的我,你是对的。我的文件超过了最大 POST 大小,所以我猜我的所有其他数据也被截断了。
  • 是的,对不起,我早点去,但它说要再等 10 分钟,我完全忘记了。感谢您的帮助!
【解决方案2】:

您必须使用$_FILES 访问上传的文件。

var_dump($_FILES); // Your uploaded files
var_dump($_POST);  // Your entered data

【讨论】:

  • 我知道我需要使用$_FILES 来访问我的文件,但是我的表单中的其他数据呢?
  • 其他数据应该$_POST
  • 您仍然可以将 $_POST 与 $_FILES 一起使用
猜你喜欢
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 2013-02-22
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
相关资源
最近更新 更多