首页 > php代码 > php 图片上传并生成缩略图代码

php 图片上传并生成缩略图代码

本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦。

<?php
if ($_FILES['image']['size']) {
    if ($_FILES['image']['type'] == "image/pjpeg") {
        $im = @imagecreatefromjpeg($_FILES['image']['tmp_name']);
        $n_bmp.= '.jpg';
    } elseif ($_FILES['image']['type'] == "image/x-png") {
        $im = @imagecreatefrompng($_FILES['image']['tmp_name']);
        $n_bmp.= '.png';
    } elseif ($_FILES['image']['type'] == "image/gif") {
        $im = @imagecreatefromgif($_FILES['image']['tmp_name']);
        $n_bmp.= '.gif';
    }
    ResizeImage($im, 8888, 8888, $n_bmp);
    ImageDestroy($im);
    $n_tag = 1;
}
function Uploadfile($str) {
    $save_path = './product/'; //文件保存目录路径
    $ext_arr = array(
        'rar',
        'zip',
        'jpg',
        'gif',
        'png',
        'bmp'
    ); //定义允许上传的文件扩展名
    $max_size = 1000000; //最大文件大小
    $file_rand = '';
    $file_ext = '';
    @mkdir($save_path, 0777); //更改目录权限
    if ($_FILES[$str]['name']) { //有上传文件时
        $file_name = $_FILES[$str]['name']; //原文件名
        $tmp_name = $_FILES[$str]['tmp_name']; //服务器上临时文件名
        $file_size = $_FILES[$str]['size']; //文件大小
        if (@is_dir($save_path) === false) { //检查目录
            alert("上传目录不存在。", '');
        }
        if (@is_writable($save_path) === false) { //检查目录写权限
            alert("上传目录没有写权限。", '');
        }
        if (@is_uploaded_file($tmp_name) === false) { //检查是否已上传
            alert("临时文件可能不是上传文件。", '');
        }
        if ($file_size > $max_size) { //检查文件大小
            alert("上传文件大小超过限制。", '');
        }
        $temp_arr = explode(".", $file_name); //获得文件扩展名
        $file_ext = array_pop($temp_arr);
        $file_ext = trim($file_ext);
        $file_ext = strtolower($file_ext);
        $file_rand = md5(date("Y-m-d"));
        if (in_array($file_ext, $ext_arr) === false) { //检查扩展名
            alert("上传文件扩展名是不允许的扩展名。", '');
        }
        if (move_uploaded_file($tmp_name, $save_path . $file_rand . '.' . $file_ext) === false) { //移动文件
            alert("上传文件失败。", '');
        }
    }
    return $save_path . $file_rand . '.' . $file_ext;
}
function ResizeImage($im, $maxwidth, $maxheight, $name) {
    $width = imagesx($im);
    $height = imagesy($im);
    if (($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)) {
        if ($maxwidth && $width > $maxwidth) {
            $widthratio = $maxwidth / $width;
            $RESIZEWIDTH = true;
        }
        if ($maxheight && $height > $maxheight) {
            $heightratio = $maxheight / $height;
            $RESIZEHEIGHT = true;
        }
        if ($RESIZEWIDTH && $RESIZEHEIGHT) {
            if ($widthratio < $heightratio) {
                $ratio = $widthratio;
            } else {
                $ratio = $heightratio;
            }
        } elseif ($RESIZEWIDTH) {
            $ratio = $widthratio;
        } elseif ($RESIZEHEIGHT) {
            $ratio = $heightratio;
        }
        $newwidth = $width * $ratio;
        $newheight = $height * $ratio;
        if (function_exists("imagecopyresampled")) {
            $newim = imagecreatetruecolor($newwidth, $newheight);
            imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        } else {
            $newim = imagecreate($newwidth, $newheight);
            imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        }
        ImageJpeg($newim, './product_e/' . $name);
        ImageDestroy($newim);
    } else {
        ImageJpeg($im, './product_e/' . $name);
    }
}


教程链接:http://www.phprm.com/code/f8c26593169829b0c79db1e885cd7678.html

随意转载~但请保留教程地址★

标签:none

发表留言