我创建了一个 php 表单,用户必须输入用户名并上传多张图片,后一张工作正常,但它不会为每张图片复制用户名
在表中我有两列 image
,name
但它只为第一列取值,其他列留空
php代码如下
<?php
$size=count($_FILES["photo"]["name"]);
for($i=0; $i < $size;$i++)
{
$name=mysql_real_escape_string($_POST['name'][$i]);
$imagefile=mysql_real_escape_string($_FILES["photo"]["name"][$i]);
if ((($_FILES["photo"]["type"][$i] == "image/gif")
|| ($_FILES["photo"]["type"][$i] == "image/jpeg")
|| ($_FILES["photo"]["type"][$i] == "image/jpg")
|| ($_FILES["photo"]["type"][$i] == "image/pjpeg")
|| ($_FILES["photo"]["type"][$i] == "image/x-png")
|| ($_FILES["photo"]["type"][$i] == "image/png"))
&& ($_FILES["photo"]["size"][$i] < 10485760))//9 mb
{
if ($_FILES["photo"]["error"][$i] > 0)
{
$Error=$Error.' '.$_FILES["photo"]["error"];
}
else
{
$path="image/".$_FILES["photo"]["name"][$i];
move_uploaded_file($_FILES["photo"]["tmp_name"][$i],$path);
$sql="INSERT INTO restimage (name, rest_image) "."VALUES('$name','$imagefile')";
$retval = mysql_query($sql);
}
}
else
{
$Error=$Error.' '.$_FILES["photo"]["name"][$i] .' is corrupt file or not choosen ';
}
}
if($Error =="")
{
echo "images uploaded successfully";
}
else
{
echo $Error;
}
?>
HTML 部分
<input type="text" name="name[]" id="name">
<input type="file" name="photo[]" >
只有一个字段可以输入姓名,四个字段可以上传四张图片
最佳答案
像这样更改您的代码;
<?php
$size=count($_FILES["photo"]["name"]);
$name=mysql_real_escape_string($_POST['name']);
for($i=0; $i < $size;$i++)
{
.....
}
你需要在 for 循环中获取用户名
编辑:在您的 html 中仅使用一个用户名文本框;
<input type="text" name="name" id="name" value=""/>
关于php表单为特定名称上传多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22224767/