• 技术文章 >后端开发 >php教程

    php图片上传并生成缩略图效果_PHP教程

    2016-07-13 10:45:38原创400
    php图片上传并生成缩略图效果 本教程是一款php图片上传然后,把上传的图片生成小图片哦,是一款非常好的文件上传类,如果你正在找类程序可以进来看看

    php教程图片上传并生成缩略图效果
    本教程是一款php图片上传然后,把上传的图片生成小图片哦,是一款非常好的文件上传类,如果你正在找类程序可以进来看看
    */

    function uploadimage($upname,$smallmark=1,$dstsw,$dstsh=0,$path_dim,$path_xim,$newname,$smallname=0,$filetype="null") {
    global $webaddr,$_files,$my;
    $phpv=str_replace('.', '', php_version);
    $filename=$upname;
    $max_file_size = 2147483648; //上传文件大小限制, 单位byte 2m
    $path_im = $path_dim; //生成大图保存文件夹路径
    $path_sim = $path_xim; //缩略图保存文件夹路径
    $simclearly=75;
    $simclearlypng =$phpv>=512?7:75; //缩略图清晰度0-100,数字越大越清晰,文件尺寸越大
    $smallmark = $smallmark; //是否生成缩略图(1为加生成,其他为不);
    $dst_sw =$dstsw; //定义缩略图宽度,高度我采用等比例缩放,所以只要比较宽度就可以了
    $uptypes=array(
    'image/jpg',
    'image/jpeg',
    'image/png',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'image/x-png'
    );

    if (!is_uploaded_file($_files[$filename][tmp_name])) {
    dsetcookie('setok','upload1');
    header("location:bKjia.c0m/profile");
    exit;
    }
    $file = $_files[$filename];
    $pinfo = pathinfo($file["name"]);
    if ($filetype=="null") {
    $filetype = $pinfo['extension'];
    }
    if (!in_array(strtolower($pinfo['extension']),array("jpg","jpeg","png","gif"))) {
    dsetcookie('setok','upload3');
    header("location:bKjia.c0m/profile");
    exit;
    }

    if($max_file_size < $file["size"]) {//检查文件大小
    dsetcookie('setok','upload2');
    header("location:bKjia.c0m/profile");
    exit;
    }
    if(!in_array($file["type"],$uptypes)) { //检查文件类型
    dsetcookie('setok','upload3');
    header("location:bKjia.c0m/profile");
    exit;
    }
    if(!file_exists($path_im)) {
    mkdir($path_im);
    }

    $filename = $file["tmp_name"];
    $im_size = getimagesize($filename);

    $src_w = $im_size[0];
    $src_h = $im_size[1];
    $src_type = $im_size[2];

    $all_path = $path_im.$newname.".".$filetype;//路径+文件名,目前以上传时间命名
    if (file_exists($all_path)) {
    @unlink($all_path);
    }
    if(!move_uploaded_file ($filename,$all_path)) {
    dsetcookie('setok','upload4');
    header("location:bKjia.c0m/profile");
    exit;
    }
    $pinfo = pathinfo($all_path);
    $fname = $pinfo[basename];

    switch($src_type) {//判断源图片文件类型
    case 1://gif
    $src_im = @imagecreatefromgif($all_path);//从源图片文件取得图像
    break;
    case 2://jpg
    $src_im = @imagecreatefromjpeg($all_path);
    break;
    case 3://png
    $src_im = @imagecreatefrompng($all_path);
    break;
    //case 6:
    //$src_im=imagecreatefromwbmp($all_path);
    //break;
    default:
    dsetcookie('setok','upload3');
    header("location:bKjia.c0m/profile");
    exit;
    }

    if($smallmark == 1) {
    if(!file_exists($path_sim)) {//检查缩略图目录是否存在,不存在创建
    mkdir($path_sim);
    }
    if ($smallname) $newname=$smallname;
    $sall_path = $path_sim.$newname.".".$filetype;
    if (file_exists($sall_path)) {
    @unlink($sall_path);
    }
    if($src_w <= $dst_sw) { // 原图尺寸 <= 缩略图尺寸
    if ($dstsh==0) {
    $dst_sim = @imagecreatetruecolor($src_w,$src_h); //新建缩略图真彩位图
    $sx=$sy=0;
    } else {
    $dst_sim = @imagecreatetruecolor($dstsw,$dstsh); //新建缩略图真彩位图
    $sx=($dstsw-$src_w)/2;
    $sy=($dstsh-$src_h)/2;
    }
    $img = @imagecreatefrompng("images/phbg.png");
    @imagecopymerge($dst_sim,$img,0,0,0,0,$dstsw,$dstsh,100); //原图图像写入新建真彩位图中
    @imagecopymerge($dst_sim,$src_im,$sx,$sy,0,0,$src_w,$src_h,100); //原图图像写入新建真彩位图中
    }

    if($src_w > $dst_sw) { // 原图尺寸 > 缩略图尺寸
    $dst_sh = $dst_sw/$src_w*$src_h;
    if ($dst_sh<$dstsh) {
    $dst_sh=$dstsh;
    $dst_sw=$dst_sh/$src_h*$src_w;
    }
    if ($dstsh==0) {
    $dst_sim = @imagecreatetruecolor($dst_sw,$dst_sh); //新建缩略图真彩位图(等比例缩小原图尺寸)
    } else {
    $dst_sim = @imagecreatetruecolor($dstsw,$dstsh); //新建缩略图真彩位图(等比例缩小原图尺寸)
    }
    @imagecopyresampled($dst_sim,$src_im,0,0,0,0,$dst_sw,$dst_sh,$src_w,$src_h); //原图图像写入新建真彩位图中
    }

    switch($src_type) {
    case 1:@imagegif($dst_sim,$sall_path,$simclearly);//生成gif文件,图片清晰度0-100
    break;
    case 2:@imagejpeg($dst_sim,$sall_path,$simclearly);//生成jpg文件,图片清晰度0-100
    break;
    case 3:@imagepng($dst_sim,$sall_path,$simclearlypng);//生成png文件,图片清晰度0-100
    break;
    //case 6:
    //imagewbmp($dst_sim,$sall_path);
    break;
    }
    //释放缓存
    @imagedestroy($dst_sim);
    }
    @imagedestroy($src_im);
    return $newname.".".$filetype;
    }
    ?>

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/633015.htmlTechArticlephp图片上传并生成缩略图效果本教程是一款php图片上传然后,把上传的图片生成小图片哦,是一款非常好的文件上传类,如果你正在找类程序...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 图片 上传 生成 略图 效果 php 图片 上传 生成 略图 效果 教程 是一 然后
    上一篇:php生成缩略图(文本转换成图形)_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 浅析PHP应用程序中正确调用系统命令的方法• 求解:phpcms模板怎样转码?该怎么解决• 想请问一下印证的有关问题• PHP怎么调用其它语言程序 • php 之 cookie 跟 session 简单解读(笔记)
    1/1

    PHP中文网