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

来源:互联网 发布:js 按轨迹移动 编辑:程序博客网 时间:2024/05/20 22:40
// 上传文件类型列表
$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