Das*_*tic 22 html php forms multipartform-data
我正在尝试将包含两个字段的HTML POST表格组合在一起 - 文件上传和文本字段.由于表单有一个类型的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>";
?>
Run Code Online (Sandbox Code Playgroud)
这是整个测试文件.如果我删除了enctype,我可以获得POST-ed数据,但当然不是文件.使用enctype作为multipart/form-data,我可以获取文件,但没有来自POST-ed数据.
这是带有enctype的输出:
array(5) {
["name"]=>
string(34) "testing.png"
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(1)
["size"]=>
int(0)
}
Run Code Online (Sandbox Code Playgroud)
无:
testing
NULL
Run Code Online (Sandbox Code Playgroud)
两次输入完全相同.
$_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>
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式访问字段:
<?php
echo $_POST['imageName'];
echo "<pre>";
echo var_dump($_FILES['image']);
echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)