最新消息:

PHP类第9款:fileUp.class.php上传文件图片类

PHP类 杨红伟 2255浏览 0评论

一:类的简介

说实话,到现在为止,这是我见过的PHP上传类最强大,功能最完善的。包含的功能之多,是本人目前见过最适应开发的。有了它,基本上,上传就不用担心了!

早就知道这个类了,只是由于时间关系,一直没有写在博客上,也一直没有静下心来好好研究这么一个类。

那么接下来,我就开始我的研究工作了!

二:类的下载

官方网站:也不知道是从哪里下载来的,也找不到官网。如果有知道的,请提供一下。

开发作者:目前未知

本站下载:

三:类的方法

类的方法,可以new之后,直接使用,比如 $img = new fileUp(); 之后 $img -> up(); 这样使用。

up  
定义文件上传功能

Thumbnail
生成略缩图功能

add_waterMark
添加水印功能

四:类的特性

这款类的特性比较多,有一定的研究价值,希望有兴趣的朋友们可以好好研究研究!特性使用方法和 类方法是一致的。只不过需要提前定义。有一些特性是默认的,如果你想要重新写的话,可以按照如下方法写。

比如定义文件的上传路径方法: img = new fileUp(); 之后$img -> upFolder = “up/”;  这样就重新定义了上传的路径是当前文件夹下的 up 文件夹!

upType = array('image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png');  //上传文件类型
maxFileSize = 1024000; //上传大小限制(单位:B)

upFolder = "../uploads/";  //上传文件路径

waterMark = 0;//是否附加水印(1为附加,0为不附加)
waterType = 1;//水印类型(1为文字,2为图片)
waterPosition = 1;//水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
waterString = null;//水印字符串
waterImg = null;//水印图片

imgPreview = 1;//是否生成预览图(1为生成,其他为不生成);
imgPreview_size = 0;//预览图比例,0为按固定宽或高显示,其他为比例显示
imgPreview_width = 300;//预览图固定宽度
imgPreview_height = 300;//预览图固定高度

Thumbnail = 0;//是否生成且保存略缩图,1为生成,0为不生成
Thumbnail_folder = null;//略缩图保存路径,默认与文件路径一致
Thumbnail_fixed = 0;//略缩图是否使用固定宽高,1为使用,0为灵活变动
Thumbnail_width = 200;//略缩图宽度
Thumbnail_height = 200;//略缩图高度
Thumbnail_name = null;//略缩图名称

inputName = "litpic";//文件上传框名称

imgPreview_display = null;//图片预览图显示

fileUp_info = null;  //文件上传相关信息,1为文件不存在,2为类型不符合,3为超出大小限制,4为上传失败,0为上传成功

//可在外部获取上传文件基本信息
fileName_or;//客服端文件的原名称
fileType;//文件的MIME类型
fileSize;//已上传文件的大小,单位/字节
fileTmp_name;//储存的临时文件名
fileUp_error;//该文件上传相关错误代码

imgSize;//取得图片的长宽
fileBasename;//获取带扩展名的全名
fileExtension;//获取文件扩展名
fileName;//文件名(不带扩展名)
destination;//文件路径加名称

五、类的使用方法

在上传单个图时,我们的HTML代码如下:

<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="litpic" id="litpic" />
	<input type="submit" value="上传" name="submit_pic"/>
</form>

如果上传多个图时的情况下,HTML代码如下:

<form action="" method="post" enctype="multipart/form-data">
	<input type="file" name="litpic[]" id="litpic" multiple/>
	<input type="submit" value="上传" name="submit_pic"/>
</form>

很明显,上边的区别就是一个 litpic[]和multiple 的区别。

首先说下,一些预定义的功能,如下:

upType = array('image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png');  //上传文件类型
maxFileSize = 1024000; //上传大小限制(单位:B)
upFolder = "../uploads/";  //上传文件路径
inputName = "litpic";//文件上传框名称

这些都可以根据自己的需求和喜好来定义!下面介绍一下常用的功能!

1、上传一个图片到本前目前的up文件夹,并打印出上传的目录 (成功)

演示地址: http://www.ijquery.cn/phpclass/fileup/demo1.php

$img = new fileUp();
$img -> inputName = "litpic";  	//上传图片的input的name
$img -> upFolder = "up/";		//上传图片的目录
$img -> up();	//上传
echo $img -> destination;  //打印出上传的地点

上传过程中,会打印出上传的路径,如下:

我们将下边这个图片上传

上传后,我们就会在当前目录下的 up 文件夹看到会有一张图片

如果我们再上传一张一模一样名称的图片,就会以年月日的形式展示,这样做的目的是为了防止名称重复,因为有些客户就需要上传固定的名称的图片,所以我们这样做,是为了防止重复。当然你想改的话,在类里改一下上传的名称就可以了。如图所示:

2、在HTML5下上传多个图片并打印出上传的结果(失败)

当我们选取两个图片时是这个样子的

在浏览器上显示

点击“上传”后,发现多图是不能进行上传的,报错如下:

PHP Warning:  is_uploaded_file() expects parameter 1 to be string, array given in D:\wwwroot\v3.ijquery.cn\phpclass\fileUp\class\fileUp.class.php on line 73
总结:很明显,是不能进行多图上传的。有志之士看到后如果有兴趣的话,可以修改修改,使之功能更完善。错误代码就不贴在这里了,大家可以下载看源代码
演示地址: http://www.ijquery.cn/phpclass/fileup/demo2.php 

3、上传图片时显示图片的宽和高—— imgSize(正确)


演示地址: http://www.ijquery.cn/phpclass/fileup/imgsize.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();	//上传
print_r($img -> imgSize);

上传后,我们看到结果就输出了浏览器上了,我的结果是:

Array ( [0] => 680 [1] => 510 [2] => 2 [3] => width="680" height="510" [bits] => 8 [channels] => 3 [mime] => image/jpeg )

这个结果表示:

Array
(
    [0] => 680  //表示图片的宽度
    [1] => 510  //表示图片的高度
    [2] => 2   //暂不知道什么意思
    [3] => width="680" height="510"  //图片宽高信息,可用于输出img标签
    [bits] => 8  //暂不知道什么意思
    [channels] => 3
    [mime] => image/jpeg //上传图片的类型为jpeg类型
)

4、上传图片‘显示文件+扩展名’的全称——  fileBasename(错误)

演示地址: http://www.ijquery.cn/phpclass/fileup/fileBasename.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();	//上传
print_r($img -> fileBasename); 

上传了222.jpg的图片,返回的结果是: 20150115174301120

5、上传图片只显示扩展名,例如 xx.jpg 只显示 jpg ——fileExtension(正确)

演示地址: http://www.ijquery.cn/phpclass/fileup/fileExtension.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();	//上传
print_r($img -> fileExtension);  

上传了222.jpg,返回的结果是 jpg

6、上传图片只显示文件名称——fileName(正确)

演示地址: http://www.ijquery.cn/phpclass/fileup/fileName.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileName);

上传了 222.jpg,返回的结果是:20150115174700146-2

7、上传图片显示图片路径,这个可用于写到数据库当中——destination(正确)

演示地址: http://www.ijquery.cn/phpclass/fileup/destination.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> destination); 

上传了222.jpg,返回的结果是: up/20150115175041144-2.jpg

8、上传图片显示图片的原名称——fileName_or(正确)

因为有时候我们上传图片时,会将图片重写,比如写成年月日时分秒了,这个方法就可以知道当时我们上传文件的原名称是什么。

演示地址: http://www.ijquery.cn/phpclass/fileup/fileName_or.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileName_or); 

上传了222.返回的结果还是 222.jpg

9、上传图上显示图片的MIME类型——fileType(正确)

演示地址: http://www.ijquery.cn/phpclass/fileup/fileType.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileType); 

上传222.jpg,返回的结果是:image/jpeg

10、上传图片显示图片的大小——fileSize

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileSize); 

上传222.jpg,返回的结果是 81526。默认是B。81526B,即81KB。

11、上传图片,显示存储的临时文件——fileTmp_name

演示地址: http://www.ijquery.cn/phpclass/fileup/fileTmp_name.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileTmp_name);

我上传了一个图片222.jpg,返回的结果是:C:\WINDOWS\Temp\php1A2.tmp。很明显,每上传一次就会出现一个临时文件。

12、上传图片,显示错误代码——fileUp_error(正确)

演示地址: http://www.ijquery.cn/phpclass/fileup/fileUp_error.php

$img = new fileUp();
$img -> inputName = "litpic"; 
$img -> upFolder = "up/";
$img -> up();
print_r($img -> fileUp_error); 

我上传了一个图片222.jpg,返回的结果是0。详情可见 fileUp_info 的相关参数信息。

13、我想要水印(英文水印正常,中文水印不正常)

演示地址: http://www.ijquery.cn/phpclass/fileup/demo3.php

$img = new fileUp();
$img -> inputName = "litpic";  	//上传图片的input的name
$img -> upFolder = "up/";		//上传图片的目录
	
$img -> waterMark =1; //添加水印
$img -> waterType =1; //水印类型为文字
$img -> waterPosition =5; //水印位置在右下角
$img -> waterString = 'ijquery.cn'; //水印字符
	
$img -> up();	//上传
echo $img -> destination;  //打印出上传的地点

以下是相关的照片。为什么中文会有乱码,等有时间再研究吧。

14、我想要缩略图(正常)

演示地址:http://www.ijquery.cn/phpclass/fileup/demo4.php

$img = new fileUp();
$img -> inputName = "litpic";  	//上传图片的input的name
$img -> upFolder = "up/";		//上传图片的目录
	
$img -> Thumbnail = 1;//是否生成且保存略缩图,1为生成,0为不生成
$des = $img -> Thumbnail_folder = "thumb/";//略缩图保存路径,默认与文件路径一致
$img -> Thumbnail_fixed = 1;//略缩图是否使用固定宽高,1为使用,0为灵活变动
$img -> Thumbnail_width = 200;//略缩图宽度
$img -> Thumbnail_height = 200;//略缩图高度
$name = $img -> Thumbnail_name = date("YmdHis");//略缩图名称
	
$img -> up();	//上传
$ext = $img -> fileExtension;   //后缀
$thumb_des =$des.$name."_thu.".$ext; //缩略图的地址
	
echo $img -> destination;  //打印出上传的地点
echo "<br/>";
echo "缩略图的地址是:".$thumb_des;

如图所示是上传后的结果

15、有没有预览图呢?有(正确)

需要指出的是,实时查看预览图,需要JQuery进行实时查看。而点击上传后查看预览图。我们可以点击下边的链接进行上传后预览

演示地址: http://www.ijquery.cn/phpclass/fileup/demo5.php

$img = new fileUp();
$img -> inputName = "litpic";  	//上传图片的input的name
$img -> upFolder = "up/";		//上传图片的目录
	
$img -> up();	//上传
	
$img -> imgPreview = 1;//是否生成预览图(1为生成,其他为不生成);
$img -> imgPreview_size = 0;//预览图比例,0为按固定宽或高显示,其他为比例显示
$img -> imgPreview_width = 300;//预览图固定宽度
$img -> imgPreview_height = 300;//预览图固定高度
echo $img -> imgPreview_display;

点击前如图所示:

点击后如图所示:

六:类的源码

<?php
/*----------------------------------------------------------------------------------
 * 图片上传类,功能包括:
 * 1.上传图片
 * 2.生成略缩图
 * 3.生成预览图
 * 注释:
 * 1).每个值都设定了初始值,可以不配置
 * 2).文件的每个信息都可通过外部获取
 * 命名规则:
 * (1).变量:两个单词使用大写字母区分,超过两个单词,则后面的单词使用下划线分开
 * (2).方法:单词之间使用下划线分开
 *----------------------------------------------------------------------------------
 */
class fileUp {
	//定义基本参数
	private $upType = array('image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png'); //上传文件类型
	private $maxFileSize = 1024000; //上传大小限制(单位:B)
	private $upFolder = "../uploads/";  //上传文件路径
	private $waterMark = 0;//是否附加水印(1为附加,0为不附加)
	private $waterType = 1;//水印类型(1为文字,2为图片)
	private $waterPosition = 1;//水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
	private $waterString = null;//水印字符串
	private $waterImg = null;//水印图片
	private $imgPreview = 1;//是否生成预览图(1为生成,其他为不生成);
	private $imgPreview_size = 0;//预览图比例,0为按固定宽或高显示,其他为比例显示
	private $imgPreview_width = 300;//预览图固定宽度
	private $imgPreview_height = 300;//预览图固定高度
	//+++++++++++++++++++++++++++++++++++++++++
	private $Thumbnail = 0;//是否生成且保存略缩图,1为生成,0为不生成
	private $Thumbnail_folder = null;//略缩图保存路径,默认与文件路径一致
	private $Thumbnail_fixed = 0;//略缩图是否使用固定宽高,1为使用,0为灵活变动
	private $Thumbnail_width = 200;//略缩图宽度
	private $Thumbnail_height = 200;//略缩图高度

	private $Thumbnail_name = null;//略缩图名称
	//******************************************************************************************************************
	private $inputName = "litpic";//文件上传框名称
	//******************************************************************************************************************
	private $imgPreview_display = null;//图片预览图显示
	//******************************************************************************************************************
	//文件上传相关信息,1为文件不存在,2为类型不符合,3为超出大小限制,4为上传失败,0为上传成功
	private $fileUp_info = null;
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	//可在外部获取上传文件基本信息
	private $fileName_or;//客服端文件的原名称
	private $fileType;//文件的MIME类型
	private $fileSize;//已上传文件的大小,单位/字节
	private $fileTmp_name;//储存的临时文件名
	private $fileUp_error;//该文件上传相关错误代码

	private $imgSize;//取得图片的长宽
	private $fileBasename;//获取带扩展名的全名
	private $fileExtension;//获取文件扩展名
	private $fileName;//文件名(不带扩展名)
	private $destination;//文件路径加名称
	//******************************************************************************************************************
	public function __set($propety_name, $value) {
		$this -> $propety_name = $value;
	}

	public function __get($property_name) {
		if (isset($this -> $property_name))
			return ($this -> $property_name);
		else
			return (NULL);
	}

	//******************************************************************************************************************
	//定义文件上传功能
	public function up() {
		//判断文件是否存在
		if (!is_uploaded_file($_FILES[$this -> inputName]["tmp_name"])) {
			$this -> fileUp_info = 1;
			return;
		}
		//获取并赋值相应基本参数
		$upfile = $_FILES[$this -> inputName];
		$this -> fileName_or = $upfile["name"];
		//echo iconv("UTF-8","gb2312",$upfile["name"]);  支持中文
		$this -> fileType = $upfile["type"];
		$this -> fileSize = $upfile["size"];
		$this -> fileTmp_name = $upfile["tmp_name"];
		$this -> fileUp_error = $upfile["error"];
		//检查文件类型是否符合
		if (!in_array($this -> fileType, $this -> upType)) {
			$this -> fileUp_info = 2;
			return;
		}
		//检查文件大小是否超出限制
		if ($this -> fileSize > $this -> maxFileSize) {
			$this -> fileUp_info = 3;
			return;
		}
		//判断目录是否存在
		if (!file_exists($this -> upFolder))
			mkdir($this -> upFolder);
		//进一步取得图片的信息并赋值
		$this -> imgSize = getimagesize($this -> fileTmp_name);
		$pathinfo = pathinfo($this -> fileName_or);
		$this -> fileExtension = $pathinfo["extension"];
		//获取文件扩展名
		$this -> fileBasename = date("YmdHis").rand(100, 200);
		//获取带扩展名的全名
		$this -> fileName = $pathinfo["filename"];
		//文件名(不带扩展名)
		$fileName2 = date("YmdHis").rand(100, 200);
		$this -> destination = $this -> upFolder . $this -> fileName . "." . $this -> fileExtension;
		//判断文件名是否存在,如果存在则重命名
		$n = 1;
		while (file_exists($this -> destination)) {
			while (file_exists($this -> destination)) {
				$n++;
				$this -> fileName = $this -> fileName . "-" . $n ;
				$this -> destination = $this -> upFolder . $this -> fileName . "." . $this -> fileExtension;
			}
			$this -> fileName = $fileName2 . "-" . $n ;
			$this -> destination = $this -> upFolder . $this -> fileName . "." . $this -> fileExtension;
		}
		//移动上传的文件
		if (move_uploaded_file($this -> fileTmp_name, $this -> destination))
			$this -> fileUp_info = 0;
		else
			$this -> fileUp_info = 4;

		//生成略缩图
		if ($this -> Thumbnail == 1) {
			$this -> Thumbnail();
		}
		//添加水印
		if ($this -> waterMark == 1) {
			$this -> add_waterMark();
		}
		//生成预览图
		if ($this -> imgPreview_size == 0) {

			$imgPreview_height = ($this -> imgSize[1] / $this -> imgSize[0]) * $this -> imgPreview_width;
			if ($imgPreview_height > $this -> imgPreview_height) {
				$this -> imgPreview_width = ($this -> imgSize[0] / $this -> imgSize[1]) * $this -> imgPreview_height;
			}
			$imgPreview_width = ($this -> imgSize[0] / $this -> imgSize[1]) * $this -> imgPreview_height;
			if ($imgPreview_width > $this -> imgPreview_width) {
				$this -> imgPreview_height = ($this -> imgSize[1] / $this -> imgSize[0]) * $this -> imgPreview_width;
			}

			if ($this -> imgSize["0"] < $this -> imgPreview_width) {
				$this -> imgPreview_width = $this -> imgSize["0"];
				$this -> imgPreview_height = ($this -> imgSize[1] / $this -> imgSize[0]) * $this -> imgPreview_width;
			}
			if ($this -> imgSize["1"] < $this -> imgPreview_height) {
				$this -> imgPreview_height = $this -> imgSize["1"];
				$this -> imgPreview_width = ($this -> imgSize[0] / $this -> imgSize[1]) * $this -> imgPreview_height;
			}
		} else {
			$this -> imgPreview_width = $this -> imgSize["0"] * $this -> imgPreview_size;
			$this -> imgPreview_height = $this -> imgSize["1"] * $this -> imgPreview_size;
		}
		$this -> imgPreview_display = "<img src='$this->destination' width='$this->imgPreview_width' height='$this->imgPreview_height'
                                    alt='图片预览:\r文件名':$this->fileTmp_name />";
	}

	//====================================================================================================================
	//上传功能结束,子功能开始
	//====================================================================================================================
	//生成略缩图功能
	function Thumbnail() {
		if ($this -> Thumbnail_folder == null)
			$this -> Thumbnail_folder = $this -> upFolder;

		//$this->Thumbnail_name=$this->fileName."_t.".$this->fileExtension;
		$Thumbnail_name_b = $this -> fileName . "_thu";
		$Thumbnail_name_b2 = $this -> fileName . "_thu";
		$destination_b = $this -> Thumbnail_folder . $Thumbnail_name_b . "." . $this -> fileExtension;
		//判断文件名是否存在,如果存在则重命名
		$n = 1;
		while (file_exists($destination_b)) {
			while (file_exists($destination_b)) {
				$n++;
				$Thumbnail_name_b = $Thumbnail_name_b . "(" . $n . ")";
				$destination_b = $this -> Thumbnail_folder . $Thumbnail_name_b . "." . $this -> fileExtension;
			}
			$Thumbnail_name_b = $Thumbnail_name_b2 . "(" . $n . ")";
			$destination_b = $this -> Thumbnail_folder . $Thumbnail_name_b . "." . $this -> fileExtension;
		}

		$imgInfo = getimagesize($this -> destination);
		switch($imgInfo[2]) {
			case 1 :
				$in = @imagecreatefromgif($this -> destination);
				break;
			case 2 :
				$in = @imagecreatefromjpeg($this -> destination);
				break;
			case 3 :
				$in = @imagecreatefrompng($this -> destination);
				break;
			case 6 :
				$in = @imagecreatefrombmp($this -> destination);
				break;
			default :
				break;
		}
		//计算略缩图长宽
		if ($this -> Thumbnail_fixed == 0) {
			if ($this -> Thumbnail_height > ($imgInfo[1] / $imgInfo[0]) * $this -> Thumbnail_width)
				$this -> Thumbnail_width = ($imgInfo[0] / $imgInfo[1]) * $this -> Thumbnail_height;
			else
				$this -> Thumbnail_height = ($imgInfo[1] / $imgInfo[0]) * $this -> Thumbnail_width;
		}
		if ($this -> Thumbnail_width > $imgInfo[0]) {
			$this -> Thumbnail_width = $imgInfo[0];
			$this -> Thumbnail_height = ($imgInfo[1] / $imgInfo[0]) * $this -> Thumbnail_width;
		}
		if ($this -> Thumbnail_height > $imgInfo[1]) {
			$this -> Thumbnail_height = $imgInfo[1];
			$this -> Thumbnail_width = ($imgInfo[0] / $imgInfo[1]) * $this -> Thumbnail_height;
		}

		$new = imageCreateTrueColor($this -> Thumbnail_width, $this -> Thumbnail_height);
		ImageCopyResized($new, $in, 0, 0, 0, 0, $this -> Thumbnail_width, $this -> Thumbnail_height, $imgInfo[0], $imgInfo[1]);
		switch ($imgInfo[2]) {
			case 1 :
				imagejpeg($new, $destination_b);
				break;
			case 2 :
				imagejpeg($new, $destination_b);
				break;
			case 3 :
				imagepng($new, $destination_b);
				break;
			case 6 :
				imagewbmp($new, $destination_b);
				break;
		}
	}

	//====================================================================================================================
	//====================================================================================================================
	//添加水印功能
	function add_waterMark() {
		//1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),
		//8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。
		$imgInfo = getimagesize($this -> destination);
		$im = imagecreatetruecolor($this -> imgSize[0], $this -> imgSize[1]);
		//创建真彩色
		$white = imagecolorallocate($im, 255, 255, 255);
		//设置颜色
		$black = imagecolorallocate($im, 0, 0, 0);
		$red = imagecolorallocate($im, 255, 0, 0);
		//在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。
		imagefill($im, 0, 0, $white);

		switch($imgInfo[2]) {
			//case 1:
			//$simage =imagecreatefromgif($this->destination);              // 创建一个新的形象,从文件或 URL
			//break;
			case 2 :
				$simage = imagecreatefromjpeg($this -> destination);
				break;
			case 3 :
				$simage = imagecreatefrompng($this -> destination);
				break;
			case 6 :
				$simage = imagecreatefromwbmp($this -> destination);
				break;
			default :
				//echo ("不支持的文件类型");
				break;
		}
		if (!empty($simage)) {
			//位置设置
			if ($this -> waterType == 1) {
				$str_len = strlen($this -> waterString);
				$str_width = $str_len * 10;
				$str_height = 20;
			} elseif ($this -> waterType == 1 && file_exists($this -> waterImg)) {
				$iinfo = getimagesize($this -> waterImg);
				$str_width = $iinfo[0];
				$str_height = $iinfo[1];
			}

			switch ($this->waterPosition) {
				case 1 :
					$p_x = 5;
					$p_y = $this -> imgSize[1] - $str_height;
					break;
				case 2 :
					$p_x = $this -> imgSize[0] - $str_width;
					$p_y = $this -> imgSize[1] - $str_height;
					break;
				case 3 :
					$p_x = 5;
					$p_y = 0;
					break;
				case 4 :
					$p_x = $this -> imgSize[0] - $str_width;
					$p_y = 5;
					break;
				case 5 :
					$p_x = ($this -> imgSize[0] - $str_width) / 2;
					$p_y = ($this -> imgSize[1] - $str_height) / 2;
					break;
			}
			imagecopy($im, $simage, 0, 0, 0, 0, $this -> imgSize[0], $this -> imgSize[1]);
			//拷贝图像的一部分
			//imagefilledrectangle($im,1,$this->imgSize[1]-15,130,$this->imgSize[1],$white);  //将图片的封闭长方形区域着色

			switch($this->waterType) {
				case 1 :
					//加水印字符串
					imagestring($im, 10, $p_x, $p_y, $this -> waterString, $red);
					break;
				case 2 :
					//加水印图片
					$simage1 = imagecreatefromgif($this -> waterImg);
					imagecopy($im, $simage1, 0, 0, 0, 0, 85, 15);
					imagedestroy($simage1);
					break;
			}

			switch ($imgInfo[2]) {
				case 1 :
					//imagegif($nimage, $destination);
					imagejpeg($im, $this -> destination);
					break;
				case 2 :
					imagejpeg($im, $this -> destination);
					break;
				case 3 :
					imagepng($im, $this -> destination);
					break;
				case 6 :
					imagewbmp($im, $this -> destination);
					break;
			}
			//覆盖原上传文件
			imagedestroy($im);
			imagedestroy($simage);
		}
	}

}//


发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址