我正在使用表单进行一些测试并遇到障碍,我有一个非常简单的测试脚本可以工作,但问题是表单中的我的FILE字段由于某种原因没有被提交到$ _POST数组,如果我取出encode =“multipart / form-data”它,否则我只是得到其他字段。这是脚本:
<?PHP
print_r($_POST);
echo"<br>";
print_r($_FILES);
$name = $_FILES["img1"]["name"];
$tmp_name = $_FILES["img1"]["tmp_name"];
$uploads_dir = "uploads";
echo "<br>TEMP NAME:</b>";
echo $tmp_name;
move_uploaded_file($tmp_name, "$uploads_dir/$name");
?>
<html>
<body>
<br><br>
-------------------------
<form name="test" id="test" action="index.php" method="post" enctype="multipart/form-data">
<label>Name</label>
<input type="text" name="title" id="title">
<br>
<label>File</label>
<input type="file" name="img1" id="img1" size="40">
<br>
<input type="submit" value="submit">
</form>
输出结果为:
POST ARRAY: Array ( [title] => some title )
FIELS ARRAY: Array ( [img1] => Array ( [name] => chicken.jpg [type] => image/jpeg [tmp_name] => /tmp/phpcrBLw9 [error] => 0 [size] => 30940 ) )
TEMP NAME:/tmp/phpcrBLw9
正如你所看到的,POST只有标题,而不是文件名,我需要它有两个编程的原因,有没有办法做到这一点,而不必手动欺骗/隐藏字段或编辑值?
答案 0 :(得分:3)
你将无法在$ _POST中看到$ _FILES。它们是不同的超级全局,如果你vardump($_FILES);
你会看到它存储了有关上传文件的所有信息,比如大小,tmp名称等。这就是PHP的构建方式,你唯一可以做的就是它是使用
$ _ FILES [ 'IMG1'] [ '名称']
答案 1 :(得分:1)
您可以在此处访问上传文件的名称:
$_FILES["img1"]["name"]