一个thinkphp的上传model、调用的是thinkphp自带的上传类、增加了几个参数、省的自己定义了。代码如下:

<?php
	class UploadModel extends Model{
		
		/**
		*$name      表单名称
		*$dir       上传路径   基于Pubic/Upload/下
		*$prefix    文件前缀
		*$width     生成图片宽度
		*$height    生成图片高度
		*/
		public function uploadimg($name = 'left',$dir='',$prefix='default_',$width="100",$height="100"){
			$var = $_FILES[$name]['name'];
			if(!in_array('',$_FILES[$name]['name'])){
			import('ORG.Net.UploadFile');
			$upload = new UploadFile();// 实例化上传类
			$upload->maxSize  = 3145728 ;// 设置附件上传大小
			$upload->saveRule = time;
			$upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg','swf');// 设置附件上传类型
			$upload->savePath  =  './Public/upload/'.$dir ."/";// 设置附件上传目录
			$upload->thumb = true;
				$upload->thumbPrefix = $prefix;
				$upload->thumbMaxWidth = $width;
				$upload->thumbMaxHeight = $height;
			if(!$upload->upload()) {// 上传错误提示错误信息
				echo $upload->getErrorMsg();die;
			}else{
				$info =  $upload->getUploadFileInfo();
				return $info['0']['savename'];
				
			}
		 }else{
			return false;
		 }
		}
	}
?>

在Action中调用的话就用:

/**
 *uploadimg方法参数介绍
 *$name      表单名称
 *$dir       上传路径   基于Pubic/Upload/Brands/下
 *$prefix    文件前缀
 *$width     生成图片宽度
 *$height    生成图片高度
*/
public function upload(){
 $upload = D('Upload');
 $img = $upload->uploadimg('left','Left','left_','200','200');
}

$img返回上传成功图片的名称

文章均属 松林's blog 原创 转载请注明转自 松林's blog

本文地址 : http://www.songlin51.com/archives/1007.html