手机端批量上传多个文件时服务器如何接收

来源:互联网 发布:矩阵的秩等于1说明什么 编辑:程序博客网 时间:2024/06/16 14:03

我们的论坛中发表帖子中可以附带多张图片,如何处理手机端批量上传图片文件呢?解决方案如下:

这里是一个比较系统完善的方法:

 public function uploadfileAction()
{
$size=0;//记录超过指定大小的文件个数
$filetype=0;//记录不符合文件类型的个数
$uploadfailed=0;//上传失败个数
$up_info=$_FILES['piclst'];//获取图片文件信息手机端传过来的参数名
$typelist=array("image/gif","image/jpeg","image/pjpeg","image/png");//定义可以上传的文件类型
for($i=0;$i<count($up_info['name']);$i++)
{
       //判断上传的文件类型是否合法
      if(!in_array($up_info['type'][$i],$typelist))
     {
          $filetype++;
          continue;
     }
    //判断上传的文件大小是否符合标准
    $siezs=$up_info['size'][$i]/1024/1024;
   if($siezs>=2)//超过2M就跳出该循环
   {
        $size++;
        continue;
   }
    $exten_name=pathinfo($up_info['name'][$i],PATHINFO_EXTENSION);//获取文件扩展名
   if(empty($exten_name))
  {
         $exten_name=".png";//如果是空的就赋值扩展名为png,因为ios那边传过来的不是file文件类型,是date流没有扩展名
  }
 //判断是否是上传的文件,并执行上传
 if(is_uploaded_file($up_info['tmp_name'][$i]))
 {
     //生成图片guid
     $charid = strtoupper(md5(uniqid(mt_rand(), true)));
     $hyphen = chr(45);// "-"
    $uuid = substr($charid, 0, 8).$hyphen
    .substr($charid, 8, 4).$hyphen
   .substr($charid,12, 4).$hyphen
   .substr($charid,16, 4).$hyphen
   .substr($charid,20,12);
   $pisname=$uuid.".".$exten_name;//图片文件名以guid命名
   $path="/uploadfiles/bbs/".date('Ymd')."/".$pisname;//文件存放路径
  if (!file_exists(dirname($_SERVER['DOCUMENT_ROOT'].$path)))//如果目录不存在就新建
  {
      mkdir(dirname($_SERVER['DOCUMENT_ROOT'].$path), 0777);
  }
  if(move_uploaded_file($up_info['tmp_name'][$i],$_SERVER['DOCUMENT_ROOT'].$path))//将文件移动到指定目录下
  {
      $return=array(
            "status"=>0,
            "msg"=>"success",
             "failednum"=>$uploadfailed
     );
    //将信息保存到图片表中
    $sql="INSERT INTO medipostpic (PicName,PicUrl,PostingID)VALUES('".$pisname."','http://meditool.cn".$path."',".$postid.")";
    $db->query($sql);
 }
else
{
    $uploadfailed++;
    continue;
}
}
else 
{
$return=array(
"status"=>3,
"msg"=>"no data"
);
}        
}
}
0 0
原创粉丝点击