在自己写的类中加入一个方法,下面我把我写的一个方法直接拿上来:
/* * 文件上上传 * */ public function fileUpload(){ //指定文件保存的根目录,我的是在网站根目录下的Uploads中保存,这里依实际改变 $requestRootPath = '/Uploads/'; $uploadRootPath = '.'.$requestRootPath; //导入上传类 import("@.ORG.UploadFile"); //实例化上传类 $upload = new \Think\Upload(); //设置上传文件大小 $upload->maxSize = 3292200; //设置上传文件类型 $fileType = array( 'jpg','gif','png','jpeg', 'txt','doc','docx','ppt','pptx','xls','xlsx' ); $upload->allowExts = $fileType; //设置附件上传目录 $upload->rootPath = $uploadRootPath; //设置需要生成缩略图,仅对图像文件有效 $upload->thumb = true; // 设置引用图片类库包路径 $upload->imageClassPath = '@.ORG.Image'; //设置需要生成缩略图的文件后缀 $upload->thumbPrefix = 'm_,s_'; //生产2张缩略图 //设置缩略图最大宽度 $upload->thumbMaxWidth = '400,100'; //设置缩略图最大高度 $upload->thumbMaxHeight = '400,100'; //设置上传文件规则 $upload->saveRule = 'uniqid'; //删除原图 $upload->thumbRemoveOrigin = true; //执行上传类中upload方法进行文件保存与参数返回,并将返回的参数赋给$uploadResult $uploadResult = $upload->upload(); if (!$uploadResult) { //捕获上传异常 $this->error($upload->getError); } else { //取得成功上传的文件信息 //$uploadList = $upload->getUploadFileInfo(); //导入图形类 import("@.ORG.Image"); //给m_缩略图添加水印, Image::water('原文件名','水印图片地址'),下面仅为一个示例,依自己需求进行使用 Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png'); //$_POST['image'] = $uploadList[0]['savename']; //将文件信息保存到文件表中 /* * *.............这里写自己的处理程序 * */ //如果用的异步,则返回结果 $this->ajaxReturn($result); } }
如果在您的ThinkPHP项目中有多处需要上传文件 ,那么在可以用这个方法为总入口,进行一个自定封装,其它地方可以传参数调用。
版权声明:
此文为本站源创文章[或由本站编辑从网络整理改编],
转载请备注出处:
[狂码一生]
https://www.sindsun.com/articles/8/17
[若此文确切存在侵权,请联系本站管理员进行删除!]
--THE END--