我想上传在不同输入字段中选择的多个文件。我的表格看起来像
<form action="blog_write_validate.php" method="post" id="form" enctype="multipart/form-data">
<label>Image if any</label><input type="file" name="title[0][img]" id="file1"><br>
<label>Image if any</label><input type="file" name="title[1][img]" id="file2"><br>
<label>Image if any</label><input type="file" name="title[2][img]" id="file3"><br>
</form>
blog_write_validate.php页面是
if(isset($_POST['subm']))
{
extract($_POST);
$i = 3; $j=0;
foreach($_POST['title'] as $diam )
{
$imgname = $diam['img'];
$allowedExts = array("gif", "jpeg", "jpg", "png","GIF","JPEG","JPG","PNG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
{
echo "in upload ";
$newfilename = time() . '.' . end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"][0],"blog/".$newfilename."");
echo "File uploaded <br>";
}
else
{
print "<br> ".$_FILES["file"]["type"]."";print "<br>";
print "<h2>Invalid image. File should be less than 2MB </h2>";
header("Location: blog_write.php" );exit;
}
}
我想知道如何从数组中获取这些文件名类型。我试过像$ imagename = $ diam [&#39; img&#39;],$ imagename = $ _FILES [&#34; file&#34;] [&#34; name&#34;] [&#39; IMG&#39;]; plesase告诉我如何获取这些文件名,以便我可以正确上传
答案 0 :(得分:0)
你快到了。更换
foreach($_POST['title'] as $diam )
与foreach($_FILES['title'] as $diam )
。
此外,您还需要更新foreach循环下的逻辑以获得所需的结果。
发布HTML表单时,任何元素的名称都通过$ _POST super global传递。 $ _FILES的情况也是如此。 您有三种文件输入类型,$ _FILES填充了这些输入的名称,例如$ _FILES [&#34;标题&#34;]