/* * 单文件上传接口 */ 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方法了,花了不少时间来排查。