在自己写的类中加入一个方法,下面我把我写的一个方法直接拿上来:
/*
* 文件上上传
* */
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项目中有多处需要上传文件 ,那么在可以用这个方法为总入口,进行一个自定封装,其它地方可以传参数调用。
版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编], 转载请备注出处:http://www.sindsun.com/article-details-17.html [若此文确切存在侵权,请联系本站管理员进行删除!]