一个简单文件上传代码

    private function _upload($file, $type_id = 1) {
        $type_exts = array(
            1 => array(
                'gif',
                'jpg',
                'jpeg',
                'png',
                'bmp'
            )
        );
        $max_size = 31457280;
        if (!empty($file['error'])) {
            
            switch ($file['error']) {
                case '1':
                    $error = '超过php.ini允许的大小。';
                    break;

                case '2':
                    $error = '超过表单允许的大小。';
                    break;

                case '3':
                    $error = '图片只有部分被上传。';
                    break;

                case '4':
                    $error = '请选择图片。';
                    break;

                case '6':
                    $error = '找不到临时目录。';
                    break;

                case '7':
                    $error = '写文件到硬盘出错。';
                    break;

                case '8':
                    $error = 'File upload stopped by extension。';
                    break;

                case '999':
                default:
                    $error = '未知错误。';
            }
            
            return array(
                false,
                $error,
                null
            );
        }
        if (empty($file) === false) {
            $file_name = $file['name'];
            $tmp_name = $file['tmp_name'];
            $file_size = $file['size'];
            if (!$file_name) {
                
                return array(
                    false,
                    '请选择文件。',
                    null,
                );
            }
            if (@is_uploaded_file($tmp_name) === false) {
                
                return array(
                    false,
                    '上传失败。',
                    null,
                );
            }
            if ($file_size > $max_size) {
                
                return array(
                    false,
                    '上传文件大小超过限制。',
                    null
                );
            }
            //获得文件扩展名
            $_tmp = explode(".", $file_name);
            $file_ext = array_pop($_tmp);
            $file_ext = strtolower($file_ext);
            //检查扩展名
            if (!isset($type_exts[$type_id]) || in_array($file_ext, $type_exts[$type_id]) === false) {
                return array(
                    false,
                    "上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $type_exts[$type_id]) . "格式。",
                    null
                );
            }
            //新文件名
            $filename = APP . 'tmp/tmpLogo.' .$file_ext; 
            if (move_uploaded_file($tmp_name,$filename)) {
                return array(
                    true,
                    null,
                    $filename
                );
            }else{
                return array(
                    false,
                    '上传失败。',
                    null,
                );
            }
        }
        return array(
            false,
            "没有上传文件",
            null
        );
    }
原文地址:https://www.cnblogs.com/linksgo2011/p/2989724.html