thinkphp上传文件

	/*
	 * 单文件上传接口
	 */
	public function upload() {
		if (!empty($_FILES)) {
			$upload = new \Think\Upload();
			$upload -> maxSize = 2 * 1024 * 1024;
			// 设置文件最大2M
			// 允许上传的文件后缀(留空为不限制),使用数组或者逗号分隔的字符串设置,默认为空
			$upload -> exts = array('jpg', 'gif', 'png', 'jpeg');
			// 允许上传的文件类型(留空为不限制),使用数组或者逗号分隔的字符串设置,默认为空
			$upload -> mimes = '';
			$upload -> rootPath = './Uploads/';
			// 设置附件上传根目录
			$upload -> savePath = '';
			// 设置上传的子目录
			$upload -> saveName = 'uniqid';
			// 上传文件的保存规则,支持数组和字符串方式定义
			$upload -> saveExt = '';
			// 上传文件的保存后缀,不设置的话使用原文件后缀
			$upload -> replace = true;
			// 存在同名文件是否是覆盖,默认为false
			$upload -> autoSub = true;
			// 自动使用子目录保存上传文件 默认为true
			$upload -> subName = array('date', 'Ymd');
			// 子目录创建方式,采用数组或者字符串方式定义
			$upload -> hash = true;
			// 是否生成文件的hash编码 默认为true

			// 上传成功
			if ($fileInfo = $upload -> uploadOne($_FILES['image'])) {
				$upoadRoot = './Uploads/';
				$filename = $fileInfo['savename'];
				$savepath = $fileInfo['savepath'];

				// 添加水印
				$image = new \Think\Image();
				$path = $upoadRoot . $savepath . $filename;
				$image -> open($path) -> water('./Public/Images/logo.png') -> save($path);

				/*
				 * 把上传的路径写入数据库
				 */
				$photoModel = M('Photo');
				$data['image'] = $path;
				$data['create_time'] = NOW_TIME;
				// 时间截

				if ($photoModel -> add($data)) {
					$this -> success('上传成功');
				} else {
					$this -> error($photoModel -> getError());
				}
			} else {// 上传出错
				$this -> error($upload -> getError());
			}
		} else {
			$this -> error('请选择文件');
		}
	}


这个过程中出现了 操作出现错误的提示,是由于我把add方法写成了save方法了,花了不少时间来排查。

上一篇:大数据处理框架之Strom:认识storm


下一篇:大数据处理框架之Strom:事务