コード例 #1
0
 /**
  * [文件上传方法]
  * @param  [Array] $file [要上传的文件,数组中包含五要素]
  * @param  [String] $path [文件移动路径]
  * @param  [String] $mime [允许上传的类型]
  * @param  [Int] $mixsize [文件大小]
  * @return [String]       [新的文件名称]
  */
 public static function uploadsfile($file, $path, $mime, $mixsize = 1000000)
 {
     // 验证类型 与元素长度
     if (!is_array($file) || count($file) != 5) {
         self::$error = '上传失败.. 文件不合理.. ';
         return false;
     }
     // 判断系统错误
     switch ($file['error']) {
         case '1':
             //超出服务器限定大小
             self::$error = '上传失败,文件超出服务器限定大小';
             return false;
         case '2':
             //超出自限定大小
             self::$error = '上传失败,文件超出浏览器限定大小';
             return false;
         case '3':
             //文件只上传了一部分
             self::$error = '上传失败,文件只上传了一部分...';
             return false;
         case '4':
             //用户没有选中文件
             self::$error = '上传失败,请选择文件...';
             return false;
         case '6':
             //找不到临时文件夹
         //找不到临时文件夹
         case '7':
             //服务器错误 文件无法写入
             self::$error = '服务器错误,请联系管理员..';
             return false;
     }
     // 文件类型鉴定
     if (strpos($mime, $file['type']) === false) {
         self::$error = '上传类型不合法,请满足:' . $mime;
         return false;
     }
     // 验证文件大小是否符合当前设定
     if ($file['size'] > $mixsize) {
         self::$error = '文件超出上传大小限定... 当前允许最大值:' . ceil($mixsize / 1000) . 'Kb';
         return false;
     }
     //获取名字
     $filename = self::getRandomName($file['name']);
     // 移动到指定目录
     if (move_uploaded_file($file['tmp_name'], $path . '/' . $filename)) {
         // 上传成功
         return $filename;
     } else {
         self::$error = '上传失败.. 文件无法保存.. ';
         return false;
     }
 }