我正在尝试组合一个包含两个字段的HTML POST-ed表单--一个文件上传和一个文本字段。由于表单的文件上传类型为multipart/ form -data,因此无法通过普通的PHP $_POST变量获取文本字段。那么,如何使用PHP获取表单中的文本字段呢?
根据要求,这里有一些代码,基本上直接取自Andrew:
<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的输出:
array(5) {
["name"]=>
string(34) "testing.png"
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(1)
["size"]=>
int(0)
}
没有:
testing
NULL
两次输入都是一样的。
发布于 2009-07-02 16:56:02
发布于 2011-04-21 04:24:08
检查你的帖子限制。我都快疯了,想找出是什么导致了这一切。对Apache错误日志的快速检查显示,帖子内容长度超过限制。提高限制后,post数据可用。
发布于 2009-07-02 16:56:44
对于文本字段,$_POST
应该可以很好地工作。对于实际的文件,您需要使用$_FILES
。给定以下HTML:
<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>
您可以通过以下方式访问这些字段:
<?php
echo $_POST['imageName'];
echo "<pre>";
echo var_dump($_FILES['image']);
echo "</pre>";
?>
https://stackoverflow.com/questions/1075513
复制相似问题