<?php
/*
@author waychar
@技术支持 150572314@qq.com
@copyright 2018 waychar.cn 声明：本代码可以用于学习交流使用及要商业化用途
*/

require_once 'model/update.php';
$update = new update();
$id = get($_GET['id']);
$image_id = $_GET['image_id'];
$race_id = $_GET['race_id'];
$request_type = get($_GET['request_type']);

/******************************************************************************

参数说明:
$max_file_size  : 上传文件大小限制, 单位BYTE
$destination_folder : 上传文件路径
$watermark   : 是否附加水印(1为加水印,其他为不加水印);

使用说明:
1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
2. 将extension_dir =改为你的php_gd2.dll所在目录;
 ******************************************************************************/

if ($action == 'list' || $action == '') {

    if($race_id)
    {
        $sql ="select * from race_images where race_id = ".$race_id." order by is_index desc";
        $result = $update->get_data($sql);
    }

    include 'view/admin_top.php';
    if(!$request_type)
    {
        include 'view/race_top.php';
    }
    include 'view/update.php';
    exit();
}
elseif($action =='update')
{
    //上传文件类型列表
    $uptypes=array(
        'image/jpg',
        'image/jpeg',
        'image/png',
        'image/pjpeg',
        'image/gif',
        'image/bmp',
        'image/x-png'
    );

    $max_file_size=2000000;     //上传文件大小限制, 单位BYTE
    $destination_folder="uploadimg/"; //上传文件路径
    $watermark=0;      //是否附加水印(1为加水印,其他为不加水印);
    $watertype=1;      //水印类型(1为文字,2为图片)
    $waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
    $waterstring="";  //水印字符串
    $waterimg="";    //水印图片
    $imgpreview=1;      //是否生成预览图(1为生成,其他为不生成);
    $imgpreviewsize=1/2;    //缩略图比例
    if($race_id)
    {
        $sql ="select * from race_images where race_id = ".$race_id." order by is_index desc";
        $result = $update->get_data($sql);
    }
    include 'view/admin_top.php';

    if(!$request_type)
    {
        include 'view/race_top.php';
    }
    include 'view/update.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
                //是否存在文件
    {
        echo "图片不存在，请确保上传服务器文件夹的读写权限";
        exit;
    }

    $file = $_FILES["upfile"];
    if($max_file_size < $file["size"])
                //检查文件大小
    {
        echo "文件太大!";
        exit;
    }

    if(!in_array($file["type"], $uptypes))
                //检查文件类型
    {
        echo "文件类型不符!".$file["type"];
        exit;
    }

    if(!file_exists($destination_folder))
    {
        mkdir($destination_folder);
    }

    $filename=$file["tmp_name"];
    $image_size = getimagesize($filename);
    $pinfo=pathinfo($file["name"]);
    $ftype=$pinfo['extension'];
    $destination = $destination_folder.time().".".$ftype;
    if (file_exists($destination) && $overwrite != true)
    {
        echo "同名文件已经存在了";
        exit;
    }

    if(!move_uploaded_file ($filename, $destination))
    {
        echo "移动文件出错，请确保上传服务器文件夹的读写权限";
        exit;
    }

    $pinfo=pathinfo($destination);
    $fname=$pinfo[basename];

    if($watermark==1)
    {
        $iinfo=getimagesize($destination,$iinfo);
        $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
        $white=imagecolorallocate($nimage,255,255,255);
        $black=imagecolorallocate($nimage,0,0,0);
        $red=imagecolorallocate($nimage,255,0,0);
        imagefill($nimage,0,0,$white);
        switch ($iinfo[2])
        {
            case 1:
            $simage =imagecreatefromgif($destination);
            break;
            case 2:
            $simage =imagecreatefromjpeg($destination);
            break;
            case 3:
            $simage =imagecreatefrompng($destination);
            break;
            case 6:
            $simage =imagecreatefromwbmp($destination);
            break;
            default:
            die("不支持的文件类型");
            exit;
        }

        imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
        imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);

        switch($watertype)
        {
                    case 1:   //加水印字符串
                    imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
                    break;
                    case 2:   //加水印图片
                    $simage1 =imagecreatefromgif("xplore.gif");
                    imagecopy($nimage,$simage1,0,0,0,0,85,15);
                    imagedestroy($simage1);
                    break;
                }

                switch ($iinfo[2])
                {
                    case 1:
                    imagejpeg($nimage, $destination);
                    break;
                    case 2:
                    imagejpeg($nimage, $destination);
                    break;
                    case 3:
                    imagepng($nimage, $destination);
                    break;
                    case 6:
                    imagewbmp($nimage, $destination);
                    break;
                }
                //覆盖原上传文件
                imagedestroy($nimage);
                imagedestroy($simage);
            }

            if($imgpreview==1)
            {
             ?>
             <script language="JavaScript">
                parent.document.getElementById("<?php echo $image_id?>_div").innerHTML="<?php echo "<img src=plug-in/" . $destination . " width=" . ($image_size[0] * $imgpreviewsize) . " height=" . ($image_size[1] * $imgpreviewsize) . "/><input type = text value = plug-in/".$destination." name = ".$image_id." "?>";
                parent.window.location.hash="#img_y";
                $("#frame_main",parent.document).hide();
            </script>
            <?php
            if($race_id)
            {
                $sql = "INSERT INTO `race_images` ( `race_id`, `update_time`, `images_url`) VALUES ( '".$race_id."', '".date("y-m-d h:i:s",time())."', '".$destination."')";
                $update->query($sql);

                //get id
                $sql_last_id = "select id from race_images where `images_url` = '".$destination."' order by id desc limit 0,1";
                $last_id = $update->get_one($sql_last_id);

                //set is_index
                $sql ="update race_images set is_index = 0 where race_id = ".$race_id;
                $update->query($sql);
                $sql ="update race_images set is_index = 1 where id = ".$last_id;
                $update->query($sql);

                go("?c=update&action=update&race_id=$race_id&request_type=$request_type");
            }
        }
    }
}elseif($action == 'del')
{
    $sql = "delete from race_images where id = ".$id;
    $update->query($sql);
    go("index.php?c=update&race_id=$race_id&request_type=$request_type");
}
elseif($action == 'is_index')
{
    $sql ="update race_images set is_index = 0 where race_id = ".$race_id;
    $update->query($sql);
    $sql ="update race_images set is_index = 1 where id = ".$id;
    $update->query($sql);
    go("index.php?c=update&race_id=$race_id&request_type=$request_type");
}

?>