多文件上传

2019-05-07T17:16:00
/**
 * Notes: 多文件上传数组
 * User: SongZhanDi
 * Date: 2018/9/6
 * Time: 16:28
 * @return mixed
 */
function buildInfo(){
   $i = 0;
   foreach ($_FILES as $v){//三维数组转换成2维数组
      if(is_string($v['name'])){ //单文件上传
         $info[$i] = $v;
         $i++;
      }else{ // 多文件上传
         foreach ($v['name'] as $key=>$val){//2维数组转换成1维数组
            //取出一维数组的值,然后形成另一个数组
            //新的数组的结构为:info=>i=>('name','size'.....)
            $info[$i]['name'] = $v['name'][$key];
            $info[$i]['size'] = $v['size'][$key];
            $info[$i]['type'] = $v['type'][$key];
            $info[$i]['tmp_name'] = $v['tmp_name'][$key];
            $info[$i]['error'] = $v['error'][$key];
            $i++;
         }
      }
   }
   return $info;
}

/**
 * Notes:文件上传(可用于多文件)
 * User: SongZhanDi
 * Date: 2018/9/6
 * Time: 16:28
 * @param       $num
 * @param       $file
 * @param       $file_type
 * @param mixed $dir
 * @param mixed $path
 * @return string
 */
function upload($num = 1,$file,$file_type,$dir=DT_ROOT,$path = DT_PATH){
   if ($file["error"]) {
      switch($file["error"]){
         case 1:
            $msg="上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
            break;
         case 2:
            $msg="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
            break;
         case 3:
            $msg="文件只有部分被上传";
            break;
         case 4:
            $msg="没有文件被上传";
            break;
         case 6:
            $msg="找不到临时文件夹";
            break;
         case 7:
            $msg="文件写入失败";
            break;
         default:
            $msg="未知的上传错误";
            break;
      }
      $tag['status'] = 2;
      newDie($msg);
   } else {
      //获取上传文件类型
      $fileay = explode('.',$file['name']);
      $type = $fileay[count($fileay) - 1];
      if (in_array($type,$file_type)) {
         // 如果目录不存在
         $dirname = $dir . '/file/jieqing/' .date('Ym', time());
         if (!file_exists($dirname)) {
            mkdir($dirname,0777,true);
         }
         // 文件名
         $filename = $dirname . '/' . md5($file['name'] . round(0,9999)) . time() . $num . '.png';
         // url
         $file_url = $path . '/file/jieqing/' .date('Ym', time()) . '/' . md5($file['name'] . round(0,9999)) . time() . $num . '.png';
         //转码,把utf-8转成gb2312,返回转换后的字符串, 或者在失败时返回 FALSE。
         $filename = iconv("UTF-8", "gb2312", $filename);
         //保存文件,   move_upload ed_file 将上传的文件移动到新位置
         move_uploaded_file($file["tmp_name"], $filename);
         return $file_url;
      } else {
         $tag['status'] = 2;
         newDie('文件格式不正确');
      }
   }
}
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »