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

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

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

 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"
);
}        
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值