ThinkPHP中的文件上传代码

发布时间:2020-10-02编辑:脚本学堂
从thinkphp代码中抽取出来的用于上传文件的代码,好东西与大家同享,有需要的朋友,可以参考下。

thinkphp用于上传文件的代码。

复制代码 代码示例:

<?php
/**
* 文件上传代码
* by http://www.jb200.com
*/
class UploadFileAction extends Action{
public function index() {
   $Photo  =   M('Photo');
   $data   =   $Photo->order('create_time desc')->find();
   $this->assign('data', $data);
   $this->display();
}

public function upload() {
   if (!empty($_FILES)) {
   //如果有文件上传 上传附件
   $this->_upload();
   }
}

// 文件上传
protected function _upload() {
   import('@.ORG.UploadFile');
   //导入上传类
   $upload = new UploadFile();
   //设置上传文件大小
   $upload->maxSize   = 3292200;
   //设置上传文件类型
   $upload->allowExts = explode(',', 'jpg,gif,png,jpeg');
   //设置附件上传目录
   $upload->savePath  = './Uploads/';
   //设置需要生成缩略图,仅对图像文件有效
   $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;
   if (!$upload->upload()) {
   //捕获上传异常
   $this->error($upload->getErrorMsg());
   } 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'];
   }
   $model  = M('Photo');
   //保存当前数据对象
   $data['image'] = $_POST['image'];
   $data['create_time']= NOW_TIME;
   $list   = $model->add($data);
   if ($list !== false) {
   $this->success('上传图片成功!');
   } else {
   $this->error('上传图片失败!');
   }
}
}
?>