关闭

PHP上传图片,以及为图片添加简单…

67人阅读 评论(0) 收藏 举报
// 上传文件类型列表
$uptypes = array (
'image/jpg',
'image/png',
'image/jpeg',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 20000000;                 //上传文件大小限制,单位BYTE
$destination_folder = '/media/img/icon/';     //上传文件路径
$watermark = 2;                         //是否附加水印(1为加水印,其他为不加水印);
$watertype = 1;                         //水印类型(1为文字,2为图片)
$waterposition = 1;                     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring = "@Leo-Jen"; //水印字符串
$waterimg = "xplore.gif";                //水印图片
$imgpreview = 1;                         //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize = 1 / 2;                 //缩略图比例
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//判断是否有上传文件
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
$upfile = $_FILES['upfile'];
$name = $upfile['name'];             //文件名
$type = $upfile['type'];             //文件类型
$size = $upfile['size'];             //文件大小
$tmp_name = $upfile['tmp_name'];     //临时文件
$error = $upfile['error'];         //出错原因
if ($max_file_size < $size) {        //判断文件的大小
echo '上传文件太大';
exit ();
}
if (!in_array($type, $uptypes)) {        //判断文件的类型
echo '上传文件类型不符' . $type;
exit ();
}
if (!file_exists($destination_folder)) {
mkdir($destination_folder);
}
$pinfo = pathinfo($name);
$ftype = $pinfo['extension'];
if (file_exists("media/img/icon/" .  time() . "." . $ftype)) {
//             echo $_FILES["upfile"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["upfile"]["tmp_name"], "media/img/icon/" . time() . "." . $ftype);
//             echo "Stored in: " . "media/img/" . $_FILES["upfile"]["name"];
}
$destination = "media/img/icon/" . time() . "." . $ftype;
//         if (file_exists($destination) ) {
//             echo "同名的文件已经存在了";
//             exit ();
//         }
//         if (!move_uploaded_file($tmp_name, $destination)) {
//             echo "移动文件出错";
//             exit ();
//         }
$pinfo = pathinfo($destination);
$fname = $pinfo['basename'];
$image_size = getimagesize("media/img/icon/" . $fname);
//         echo " 已经成功上传
文件名: " . $destination_folder . $fname . "
";
//         echo " 宽度:" . $image_size[0];
//         echo " 长度:" . $image_size[1];
//         echo "
大小:" . $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 "PHP上传图片,以及为图片添加简单的水印demo echo " alt=\"图片预览:\r文件名:" .$destination_folder . $fname . "\r上传时间:\">";
// }
echo $destination_folder . $fname;
}
}
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25315次
    • 积分:608
    • 等级:
    • 排名:千里之外
    • 原创:76篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条
    文章分类