免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1234 | 回复: 0
打印 上一主题 下一主题

上传图片 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-27 02:05 |只看该作者 |倒序浏览

               
               
                ?php
/*
* 参数说明
* $max_file_size  : 上传文件大小限制, 单位BYTE
* $destination_folder : 上传文件路径
* $watermark   : 是否附加水印(1为加水印,其他为不加水印);
*
* 使用说明:
* 1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;
* 2. 将extension_dir =改为你的php_gd2.dll所在目录;
*/
// 上传文件类型列表
$uptypes = array (
    'image/jpg',
    'image/png',
    'image/jpeg',
    'image/pjpeg',
    'image/gif',
    'image/bmp',
    'image/x-png'
);
$max_file_size = 20000000;                 //上传文件大小限制,单位BYTE
$destination_folder = 'uploadimg/';     //上传文件路径
$watermark = 1;                         //是否附加水印(1为加水印,其他为不加水印);
$watertype = 1;                         //水印类型(1为文字,2为图片)
$waterposition = 1;                     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring = "http://www.xplore.cn/"; //水印字符串
$waterimg = "xplore.gif";                //水印图片
$imgpreview = 1;                         //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize = 1 / 2;                 //缩略图比例
?>
html>
head>
title>ZwelL图片上传程序/title>
/head>
body>
form id="upfile" name="upform" enctype="multipart/form-data" method="post" action="">
  label for="upfile">上传文件:/label>
  input type="file" name="upfile" id="fileField" />
  input type="submit" name="submit" value="上传"/>
/form>
?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //判断是否有上传文件
    if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
        $upfile = $_FILES['upfile'];
        print_r($_FILES['upfile']);
        $name = $upfilep['name'];             //文件名
        $type = $upfile['type'];             //文件类型
        $size = $upfile['size'];             //文件大小
        $tmp_name = $upfile['tmp_name'];     //临时文件
        $error = $upfile['error'];         //出错原因
        if ($max_file_size  $size) {        //判断文件的大小
            echo '上传文件太大';
            exit ();
        }
        if (!in_arrar($type, $uptypes)) {        //判断文件的类型
            echo '上传文件类型不符' . $type;
            exit ();
        }
        if (!file_exists($destination_folder)) {
            mkdir($destination_folder);
        }
        if (file_exists("upload/" . $_FILES["file"]["name"])) {
            echo $_FILES["file"]["name"] . " already exists. ";
        } else {
            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
            echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
        }
        $pinfo = pathinfo($name);
        $ftype = $pinfo['extension'];
        $destination = $destination_folder . time() . "." . $ftype;
        if (file_exists($destination) && $overwrite != true) {
            echo "同名的文件已经存在了";
            exit ();
        }
        if (!move_uploaded_file($tmp_name, $destination)) {
            echo "移动文件出错";
            exit ();
        }
        $pinfo = pathinfo($destination);
        $fname = $pinfo[basename];
        echo " 已经成功上传
文件名:  " . $destination_folder . $fname . "
";
        echo " 宽度:" . $image_size[0];
        echo " 长度:" . $image_size[1];
        echo "
大小:" . $file["size"] . " bytes";
        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 :
                    //imagegif($nimage, $destination);
                    imagejpeg($nimage, $destination);
                    break;
                case 2 :
                    imagejpeg($nimage, $destination);
                    break;
                case 3 :
                    imagepng($nimage, $destination);
                    break;
                case 6 :
                    imagewbmp($nimage, $destination);
                    //imagejpeg($nimage, $destination);
                    break;
            }
            //覆盖原上传文件
            imagedestroy($nimage);
            imagedestroy($simage);
        }
        if ($imgpreview == 1) {
            echo "
图片预览:
";
            echo " . $destination . "\" width=" . ($image_size[0] * $imgpreviewsize) . " height=" . ($image_size[1] * $imgpreviewsize);
            echo " alt=\"图片预览:\r文件名:" . $destination . "\r上传时间:\">";
        }
    }
}
?>
/body>
/html>


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68342/showart_1745790.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP