ZOL博客
登录  |   注册  |   帮助
我的博客 日志 好友 相册
论坛
视频装备圈子 网摘 留言
ZOL博客 > u000的博客 > php 压缩图片

php 压缩图片


2007-08-20 11:19:36    业界 |  评论(0) |  浏览(1416)

<?php
//连接数据库...

$oldname = $_FILES['mfile']['name'];
$info = htmlspecialchars($_POST['info']);
//检查文件类型
if (!preg_match('/\\.(gif|jpe?g)$/i', $oldname, $match))
    die('<span class="STYLE1">只能上传gif、jpg、jpeg格式的图片!</span>');
    
//上传文件

//保存目
$uploaddir = 'uploadimages/';
$smallimg = 'uploadimages/small/';
//重新命名
$filename = date("YmdHis") . '.' . $match[1];

//上传
$uploadfile = $uploaddir . $filename;
if (!move_uploaded_file($_FILES['mfile']['tmp_name'], $uploadfile)) {
    echo "文件上传失败!";
    print_r ($_FILES);
}
//输出图片,生成缩略图
if (function_exists("imagecreatefromgif")) {
    if ($match[1] == 'gif')
        $im = imagecreatefromgif($uploadfile);
    else
        $im = imagecreatefromjpeg($uploadfile);
        
    $oldw = imagesx($im);
    $oldh = imagesy($im);
    
    $imw = imagecreatefromgif('w.gif');
    $imww = imagesx($imw);
    $imwh = imagesy($imw);
    
    $ww = $oldw/10;
    $wh = $imwh * $ww / $imww;
    
    imagecopyresized($im, $imw, $oldw - $ww, $oldh - $wh, 0, 0, $ww, $wh, $imww, $imwh);

    //$_POST['x']为缩略图宽度
    if (imagesx($im) > $_POST['x'] && $_POST['x'] > 0) {    //需要缩略图
        $x = $_POST['x'];
        $y = $oldh * $x / $oldw;
        $newname = $smallimg . $filename;
        if(function_exists("imagecopyresampled")) { 
            $newim = imagecreatetruecolor($x, $y); 
            imagecopyresampled($newim, $im, 0, 0, 0, 0, $x, $y, $oldw, $oldh); 
        }
        else { 
            $newim = imagecreate($newwidth, $newheight); 
            imagecopyresized($newim, $im, 0, 0, 0, 0, $x, $y, $oldw, $oldh); 
        }
        if ($match[1] == 'gif') {
            imagegif($im, $uploadfile);
            imagegif($newim,$newname); 
        }
        else {
            imagejpeg($newim,$newname);
            imagejpeg($im, $uploadfile);    
        } 
        imagedestroy ($newim);
        imagedestroy($im);
    }
}
else {
    echo '当前环境支持GD库,没有生成缩略图!';
}
//保存在数据库
if ($x > 0 && $y > 0) {    //有缩略图
    $query = "INSERT INTO images (id, board, oldname, newname, oldw, oldh, newx, newy, info) VALUES ('', '$bds', '$oldname', '$filename', '$oldw', '$oldh', '$x', '$y', '$info')";
}
else {    //无缩略图
    $query = "INSERT INTO images (id, board, oldname, newname, oldw, oldh, newx, newy, info) VALUES ('', '$bds', '$oldname', '$filename', '$oldw', '$oldh', '0', '0', '$info')";
}
mysql_query($query) or die(mysql_error());

?> 

上一篇:php连接mysql数据库   下一篇:php分页类
 投稿:业界
谁顶了这篇日志>>  还有谁对该日志投票? 最近读者>>
0
好文,顶
0
烂文,踩
 
发表评论:查看评论| 返回顶部
 
用户名  密码  快速注册
匿名评论
内 容:
插入表情
   *Ctrl+Enter快速回复

针对ZOL博客您有任何使用问题和建议 您可以 联系博客管理员查看帮助
ZOL简介 | 用户注册 | 广告服务 | 人员招聘(月) | ZOL历程 | 互动营销中心 | 站点地图 | 联系方式 | 欢迎投稿 | RSS订阅 | 友情链接
Copyright ©1999 - ZOL. All rights reserved. 中关村在线 版权所有.