<?php

// 字符编码
header("Content-type:application/json");
 
// 获取选择的文件
$selectedFile = $_FILES["file"]["name"];

// 接收参数
$qun_id = trim(intval($_POST['qun_id']));
 
// 允许上传的后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");

// 获取后缀名
$tempFile = explode(".", $selectedFile);
$extension = end($tempFile);

// 获取到文件名（不含后缀名）
$wenJianMing = substr($selectedFile, 0, strrpos($selectedFile, "."));

// 判断文件类型
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 10485760)
&& in_array($extension, $allowedExts)){
    
    // 判断上传结果
    if ($_FILES["file"]["error"] > 0){
        
        // 上传失败
        $result = array(
            'code' => 201,
            'msg' => '上传失败'
        );
    }else{
        
        // 判断登录状态
        session_start();
        if(isset($_SESSION["yinliubao"])){
            
            // 当前登录的用户
            $loginUser = $_SESSION["yinliubao"];
            
            // 文件指纹
            // 以区分同一文件名时
            // 各文件的唯一
            $fingerPrint = rand(100,999);
            
            // 新的文件（文件名+指纹+后缀名）
            $newFile = $wenJianMing.'-'.$fingerPrint.'.'.$extension;
            
            // 上传文件
            move_uploaded_file($_FILES["file"]["tmp_name"], "../upload/".$newFile);
            
            // 获取HTTP协议
            $protoCol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
            
            // 图片文件链接
            $imgFileUrl = $protoCol.'://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];
            
            // 图片储存目录
            $imgFileFolder = dirname(dirname($imgFileUrl));
            
            // 子码ID生成
            $zm_id = rand(100000,999999);
            
            // 数据库配置
        	include '../Db.php';
        
        	// 实例化类
        	$db = new DB_API($config);
        
        	// 参数
            $uploadQunzmParams = [
                'qun_id' => $qun_id,
                'zm_id' => $zm_id,
                'zm_qrcode' => $imgFileFolder."/upload/".$newFile,
                'zm_update_time' => date('Y-m-d H:i:s')
            ];
            
            // 将上传的二维码添加至当前qunid的子码中
            $uploadQunzmResult = $db->set_table('huoma_qun_zima')->add($uploadQunzmParams);
            
            // 执行成功
            if($uploadQunzmResult){
                
                // 将素材添加至素材库
                // 素材ID
                $sucai_id = rand(100000,999999);
                
                // 参数
                $uploadSuCaiParams = [
                    'sucai_id'=>$sucai_id,
                    'sucai_filename'=>$newFile,
                    'sucai_beizhu'=>$wenJianMing,
                    'sucai_upload_user'=>$loginUser,
                    'sucai_type'=>1,
                    'sucai_size'=>$_FILES["file"]["size"]
                ];
        
                // 将素材记录插入数据库
                $uploadSuCai = $db->set_table('huoma_sucai')->add($uploadSuCaiParams);
                
                // 判断添加至素材库结果
                if($uploadSuCai){
                    
                    // 上传成功
                    $result = array(
                        'code' => 200,
                        'msg' => '上传成功'
                    );
                }else{
                    
                    // 添加至素材库失败
                    $result = array(
                        'code' => 203,
                        'msg' => '添加至素材库失败'
                    );
                }
            }else{
                
                // 上传失败
                $result = array(
                    'code' => 202,
                    'msg' => '上传失败'
                );
            }
            
        }else{
            
            // 未登录
            $result = array(
                'code' => 201,
                'msg' => '未登录'
            );
        }
    }
}else{
    
    // 此类文件不能上传
    $result = array(
        'code' => 202,
        'msg' => '此类文件不能上传'
    );
}

// 输出JSON
echo json_encode($result,JSON_UNESCAPED_UNICODE);

?>
