首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析多部分表单数据

解析多部分表单数据
EN

Stack Overflow用户
提问于 2009-07-02 16:54:11
回答 7查看 87.1K关注 0票数 24

我正在尝试组合一个包含两个字段的HTML POST-ed表单--一个文件上传和一个文本字段。由于表单的文件上传类型为multipart/ form -data,因此无法通过普通的PHP $_POST变量获取文本字段。那么,如何使用PHP获取表单中的文本字段呢?

根据要求,这里有一些代码,基本上直接取自Andrew:

代码语言:javascript
复制
<html>
    <body>
        <form action="test2.php" method="post" enctype="multipart/form-data">
            Name: <input type="text" name="imageName" />
            Image: <input type="file" name="image" />
            <input type="submit" value="submit" />
        </form>
    </body>
</html>

<?php
  echo $_POST['imageName'];
  echo "<pre>";
  echo var_dump($_FILES['image']);
  echo "</pre>";
?>

这是整个测试文件。如果我删除了enctype,我可以获得POST-ed数据,但当然不能获得文件。在enctype为multipart/form-data的情况下,我可以获取文件,但不能从POST后的数据中获取数据。

以下是包含enctype的输出:

代码语言:javascript
复制
array(5) {
  ["name"]=>
  string(34) "testing.png"
  ["type"]=>
  string(0) ""
  ["tmp_name"]=>
  string(0) ""
  ["error"]=>
  int(1)
  ["size"]=>
  int(0)
}

没有:

代码语言:javascript
复制
testing

NULL

两次输入都是一样的。

EN

回答 7

Stack Overflow用户

发布于 2009-07-02 16:56:02

文件上传是通过$_FILES实现的。其他一切都是通过$_POST实现的(当然,假设您的HTML表单的method属性设置为"post")。

票数 33
EN

Stack Overflow用户

发布于 2011-04-21 04:24:08

检查你的帖子限制。我都快疯了,想找出是什么导致了这一切。对Apache错误日志的快速检查显示,帖子内容长度超过限制。提高限制后,post数据可用。

票数 9
EN

Stack Overflow用户

发布于 2009-07-02 16:56:44

对于文本字段,$_POST应该可以很好地工作。对于实际的文件,您需要使用$_FILES。给定以下HTML:

代码语言:javascript
复制
<html>
  <body>
    <form action="self.php" method="post" enctype="multipart/form-data">
      Name: <input type="text" name="imageName" />
      Image: <input type="file" name="image" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

您可以通过以下方式访问这些字段:

代码语言:javascript
复制
<?php
  echo $_POST['imageName'];
  echo "<pre>";
  echo var_dump($_FILES['image']);
  echo "</pre>";
?>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1075513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档