日期:2014-05-17  浏览次数:20653 次

有没有PHP上传多张图片的源码学习一下
想实现上传多张图片到指定目录下,并把图片路径写入数据库,还得将表单中的其他文本元素也写入数据库,

表单内容如下:
HTML code

<form name="myform" action="upload.php" method="post" enctype="multipart/form-data">       
 产品名称: <input type="text" name="p_name" />  <br />
 产品图片1:<input type="file" name="upimage1">  <br />
 产品图片2:<input type="file" name="upimage2">  <br />
 产品图片3:<input type="file" name="upimage3">  <br />
 产品图片4:<input type="file" name="upimage4">  <p />
            <input type="hidden" name="MAX_FILE_SIZE" value="20000000">

    <input type="submit" name="submit" value="提交">  
</form> 



处理这个需求的PHP代码:upload.php如何写呢?

具体要求:
1,上传文件前要检测图片格式必须为jpg,bmp,gif或者png,否则不上传;
2,上传图片的体积不能超过2M;
3,必须对文件重命名


------解决方案--------------------
试试我的代码

PHP code

<?php 
header("Content-Type:text/html;charset=utf-8");
$files = $_FILES['file'];
$icount = (count($files["name"]));//数一下有几个上传文件

$h =0;
$upimg = "";
$scinfo="";
$size=300*1024; //限定上传文件的大小300kb
for ($c=0;$c<=($icount-1);$c++){    
    if ($files["error"][$c]===0){
        if($files["size"][$c]>($size)){//输出超出文件大小的提示
            $scinfo .= "提示:".strtolower($files["name"][$c])." 超过".($size)."kb,请压缩后再试。<br />";
        }else{
            $typeaa = pathinfo($files["name"][$c],PATHINFO_EXTENSION);//获取文件类型            
            if (($typeaa == "image/gif") || ($typeaa == "image/jpeg") || ($typeaa == "image/pjpeg")){//判断是否jpg、gif图片        
                $newname = date("Ymdhis-").$c.".".$typeaa; //构建文件名
                $folder = "../upload/".date("Ymd")."/";//构建文件目录
                if (!file_exists($folder)){//判断文件夹是否存在
                    mkdir($folder,666,true);//创建多级目录
                }
                move_uploaded_file($files["tmp_name"][$c],$folder.$newname);//上传图片
                $upimg .= "<img src='/".$folder.$newname."' /> ";//返回图片
                $h++;
            }else{
                    $scinfo .= "提示".$files["name"][$c]."不是图片";            
            }
        }
    }
} 
$scinfo .= "共成功上传".$h."个文件";
echo $scinfo."<br>".$upimg;
?>

------解决方案--------------------
楼主,另外一个帖子我已经说了我的思路和解决方法。

先上传单张图片,能成功,就用四次,即可搞定