我有一个照片分享博客,注册用户上传图片。然后,图像会进入管理面板,我会对其进行审核,并在获得批准后发布。
我想启用多张图片上传,即用户必须能够选择并上传多张图片。
我尝试在代码中添加多个属性。它已经启用了多个图像的选择和上传但是只有一个图像显示在我的管理面板中以供审批,所有其他图像都被丢弃。我该如何解决这个问题?
以下是上传页面的代码:
<?php include ('header.php');?>
<?php @session_start();?>
<div class="domainSearchComplex">
<img src="theme_image/banner-mega.jpg" title="Change Image" style="width:960px; height:280px; margin-left:-55px !important;border-radius:15px;"> </div>
<?php //include ('slider.php');
$username = $_SESSION['user'];
$type = $_SESSION['type'];
$id_no = $_SESSION['id_no'];
if(isset($_POST['insert']))
{
$pic = $_FILES["image"]["name"];
$today = date('Y-m-d H:i:s');
if ($_FILES["image"]["error"] > 0)
{ $msg= "Error........Code: " . $_FILES["image"]["error"]; }
else
{
$pic = uniqid().$_FILES["image"]["name"];
move_uploaded_file($_FILES["image"]["tmp_name"],
"posts_images/" . $pic);
$query ="insert into `all_images` (`id_no`,`user_name`,`image`,`status`,`date`) values ('$id_no','$username' ,'$pic','9','$today')";
if(mysql_query($query))
{
$msg = "<span style=\"color: green;margin-left:25px;margin-top:25px;\">Image Inserted Successfully...!</span>";
}
else
{$msg = "Error in insertion.........".mysql_error(); }
}}
?>
<div style="height: 0;" class="clear"> </div>
<div class="clearfix" id="mainContent">
<div class="clearfix" id="homeFeatured">
<?php include ('sidebar.php');?>
<div style="width: 66%; float: left;">
<h1 style="color:#DD003D; margin:39px 25px 17px 193px;">Post Your Images</h1>
<div class="tdp48 signupPart">
<div class="signUp" style="width:603px !important; height:400px !important; margin:0px 11px 17px 11px !important; border-radius: 8px;">
<?php
$qryc = "SELECT * FROM `register` where id_no='$id_no'";
$resc = mysql_query($qryc);
$rpc = mysql_fetch_array($resc);
$image = $rpc['image'];
?>
<form class="form2" enctype="multipart/form-data" onsubmit="return validate();" method="post">
<div class="loginTag" style="margin-top:-14px !important"><center>
<br /><?php echo @$msg;?>
<table style="margin-top:70px;">
<tr>
<td class="firstTd"><label>Image:</label></td>
<td class="secondTd"><input name="image" multiple="" id="image" type="file" value="" /></td>
</tr>
<tr><td colspan="2" align="center"><input type="submit" value="INSERT" name="insert" class="btnSignup" /></td></tr>
</table>
</div>
</form>
</ul>
<!--</div>-->
</div> </div> </div> </div> </div>
<?php include ('footer.php');?>
<style>.menu2 {margin-top:4px !important;}
</style>
<script type="text/javascript">
function validate () {
var image = document.getElementById('image').value;
if (image == '') {
alert ('Please enter your image');
return false;
}
}
</script>
答案 0 :(得分:0)
看起来你有一个非常大的SQL注入问题,你应该先修复。
将PDO用于参数绑定 - 不要直接在sql语句中引用变量
对于多个图片,看起来您没有循环或做任何事情来在代码中添加多个图片?
我希望看到
的内容foreach($images as $image){
//insert image here
}
答案 1 :(得分:0)
如果你想用php处理多个文件,那么你需要通过添加方括号来使input
名称值成为数组而不是字符串 - 即name="image[]"
。
所以你的图片上传输入是:
<input name="image[]" multiple="" id="image" type="file" value="" />
这将使$_FILES
超全局成为包含所选文件的多维数组。
答案 2 :(得分:0)
多个图片上传的输入参数定义错误。请尝试使用以下代码:
<input name="image[]" multiple="multiple" id="image" type="file" value="" />