Exemplo n.º 1
0
 public function upload()
 {
     check_login();
     if (check_project_selected()) {
         $this->error(C('PROJECT_SELECT_TIP'));
     }
     $place = $_GET['place'];
     $upload = new \Think\Upload();
     $upload->maxSize = 3145728;
     $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
     $upload->rootPath = './Uploads/';
     $upload->savePath = '';
     if (IS_POST) {
         $info = $upload->upload();
         if (!$info) {
             $this->error($upload->getErrorMsg());
         } else {
             $Photos = M("Photos");
             if ($Photos) {
                 foreach ($info as $file) {
                     $data['img_url'] = $file['savepath'] . $file['savename'];
                     $data['img_title'] = I("post.img_title") == null ? "unname" : I("post.img_title");
                     $data['place_id'] = $place;
                     if ($Photos->data($data)->add()) {
                         $this->success("上传成功!");
                     } else {
                         $this->error("写入失败!");
                     }
                 }
             } else {
                 $this->error($upload->getError());
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * 单个上传图片
  */
 public function uploadPic()
 {
     $config = array('maxSize' => 0, 'exts' => array('jpg', 'png', 'gif', 'jpeg'), 'rootPath' => './Upload/', 'driver' => 'LOCAL', 'subName' => array('date', 'Y-m'), 'savePath' => I('dir', 'uploads') . "/");
     $upload = new \Think\Upload($config);
     $rs = $upload->upload($_FILES);
     if (!$rs) {
         $this->error($upload->getErrorMsg());
     } else {
         $images = new \Think\Image();
         $images->open('./Upload/' . $rs['Filedata']['savepath'] . $rs['Filedata']['savename']);
         $newsavename = str_replace('.', '_thumb.', $rs['Filedata']['savename']);
         $vv = $images->thumb(I('width', 100), I('height', 100))->save('./Upload/' . $rs['Filedata']['savepath'] . $newsavename);
         $rs['Filedata']['savepath'] = "Upload/" . $rs['Filedata']['savepath'];
         $rs['Filedata']['savethumbname'] = $newsavename;
         $rs['status'] = 1;
         echo json_encode($rs);
     }
 }
 /**
  * 处理文章修改
  */
 public function do_edit()
 {
     C('TOKEN_ON', false);
     //     	dump($_POST);
     //     	exit;
     //处理鉴定属性编辑
     $id = I('post.id');
     $db = D('Attr_news');
     $db->where(array('news_id' => $id))->delete();
     $data = array();
     foreach (I('post.access') as $v) {
         $data[] = array(news_id => $id, attr_id => $v);
     }
     //     	dump($data);
     //     	exit;
     $result = $db->addAll($data);
     //     	dump($result);
     //     	exit;
     //处理文章添加
     $m = D('News');
     if (!$m->create()) {
         $this->error($m->geterror());
     }
     //**查询提交所属的栏目模型,是外链或者单页模型则提示添加失败
     $nv_id = I('post.nv_id');
     //dump($nv_id);
     //exit;
     $m = M('Column');
     $arr = $m->find($nv_id);
     $column_link = $arr['column_link'];
     $column_type = $arr['column_type'];
     if ($column_link == 1) {
         $this->error('所属栏目为外链模型!');
     }
     $m = M('Model');
     $arr = $m->find($column_type);
     $model_table = $arr['model_table'];
     //dump($model_table);
     //exit;
     if ($model_table == 'page') {
         $this->error('所属栏目为单页模型!');
     }
     //**数据插入操作
     $m = D('News');
     if (!$m->create()) {
         $this->error($m->geterror());
     }
     //**需要另外添加到数据库的在这里填写
     //注意,非表单自动创建提交的数据,要写在if判断之后才能提交到数据库
     $m->news_updatetime = time();
     //**将内容截取一部分中文插入到描述中
     //**trim去初空格       mb_substr截取字符      strip_tags去除html字符
     $content = I('post.news_content');
     $description = trim(mb_substr(strip_tags($content), 0, 200, 'utf-8'));
     $description = str_replace(" ", "", $description);
     $description = str_replace(" ", "", $description);
     $description = str_replace("\t", "", $description);
     $description = str_replace("\n", ",", $description);
     //dump($description);
     //exit;
     //正则截取中文函数
     preg_match_all('/[x{4e00}-\\x{9fa5}]+/u', $description, $arr);
     //dump($arr);
     //exit;
     $description = implode(',', $arr[0]);
     //implode('用什么链接到一起',array(数组))
     //dump($description);
     //exit;
     $m->news_description = $description;
     //缩略图上传
     $file = $_FILES['news_pic']['name'];
     $pic = I('post.pic');
     if ($file) {
         //选中上传图片
         $id = I('post.id');
         $m = M('News');
         $arr = $m->find($id);
         //     		dump($arr);
         //     		exit;
         //删除本地图片附件 unlink('图片url')
         unlink('./Uploads/' . $arr["news_pic"]);
         //删除图片后重新上传
         $upload = new \Think\Upload();
         // 实例化上传类
         $upload->maxSize = 3145728;
         // 设置附件上传大小
         $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
         // 设置附件上传类型
         $upload->savePath = './Uploads/';
         // 设置附件上传根目录
         $upload->savePath = '/Tmp/';
         // 网站主栏目图片 设置附件上传(子)目录  缩略图
         $upload->autoSub = true;
         $upload->subName = array('date', 'Ymd');
         $upload->saveName = array('uniqid', '');
         //设置上传文件规则
         $info = $upload->upload();
         //设置需要生成缩略图,仅对图像文件有效
         //$upload->thumb              = true;
         //设置需要生成缩略图的文件后缀
         //$upload->thumbPrefix        = 'm_,s_';  //生产2张缩略图
         //设置缩略图最大宽度
         //$upload->thumbMaxWidth      = '400,100';
         //设置缩略图最大高度
         //$upload->thumbMaxHeight     = '400,100';
         //$upload->thumbRemoveOrigin  = true;//删除原图
         if (!$info) {
             //捕获上传异常
             $this->error($upload->getErrorMsg());
         } else {
             //取得成功上传的文件信息
             //给m_缩略图添加水印, Image::water('原文件名','水印图片地址')
             //Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
             //dump($uploadList[0]);
             //exit;
             foreach ($info as $file) {
                 //$image = __ROOT__.'/'.'Uploads'.$file['savepath'].$file['savename'];
                 $image = '/' . 'Uploads' . $file['savepath'] . $file['savename'];
                 $size = $file['size'];
             }
         }
         //     		dump($image);
         //     		exit;
         $m->news_pic = $image;
         //$m->news_images = 1;
     } else {
         if ($pic) {
             $pic = I('post.pic');
             //     			dump($pic);
             //     			exit;
             if (preg_match("/nopic*/", $pic)) {
                 //将内容中的第一张图片的地址截取放在news_pic字段中
                 $str = $_POST['news_content'];
                 preg_match('/<img\\s[^<>]*?src=[\'\\"]([^\'\\"<>]+?)[\'\\"][^<>]*?>/i', $str, $pic);
                 if ($pic[1]) {
                     $m->news_pic = $pic[1];
                 } else {
                     $image = "/Data/Images/nopic.jpg";
                     $m->news_pic = $image;
                 }
             } else {
                 $m->news_pic = $pic;
             }
             //$m->news_images =  1;
         } else {
             $image = "/Data/Images/nopic.jpg";
             $m->news_pic = $image;
             //$m->news_images =  0;
         }
     }
     // 判断内容是否为图片附件
     $news_content = I('post.news_content');
     //     	dump($news_content);
     //     	exit;
     // 正则判断文本内容是否包含图片
     if (preg_match("/img src*/", $news_content)) {
         $m->news_images = 1;
     } else {
         $m->news_images = 0;
     }
     //exit;
     //**上传附件代码  附件保存在网站目录里  附件名保存在数据库里面
     //$m->filename = $info[0]['savename']; // 将附件的名字保存在数据库的filename字段里
     //**上传附件代码  附件保存在网站目录里  附件名保存在数据库里面
     //**需要另外添加到数据库的在这里填写
     $arr = $m->save();
     //自动修改 不需要定义id 因为post表单中已经有
     //dump($arr);
     //exit;
     if ($arr) {
         $this->success('修改成功');
     } else {
         $this->error('修改失败');
         //$this->error($m->geterror());
     }
 }
Exemplo n.º 4
0
 /**
  * 文件上传
  */
 protected function _upload()
 {
     $upload = new \Think\Upload();
     // 实例化上传类
     $upload->maxSize = 3145728;
     // 设置附件上传大小
     $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
     // 设置附件上传类型
     $upload->savePath = './Uploads/';
     // 设置附件上传根目录
     $upload->savePath = '/Img/';
     // 网站主栏目图片 设置附件上传(子)目录
     $upload->autoSub = true;
     $upload->subName = array('date', 'Ymd');
     $upload->saveName = array('uniqid', '');
     //设置上传文件规则
     $info = $upload->upload();
     //设置需要生成缩略图,仅对图像文件有效
     //$upload->thumb              = true;
     //设置需要生成缩略图的文件后缀
     //$upload->thumbPrefix        = 'm_,s_';  //生产2张缩略图
     //设置缩略图最大宽度
     //$upload->thumbMaxWidth      = '400,100';
     //设置缩略图最大高度
     //$upload->thumbMaxHeight     = '400,100';
     //$upload->thumbRemoveOrigin  = true;//删除原图
     if (!$info) {
         //捕获上传异常
         $this->error($upload->getErrorMsg());
     } else {
         //取得成功上传的文件信息
         //给m_缩略图添加水印, Image::water('原文件名','水印图片地址')
         //Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
         //dump($uploadList[0]);
         //exit;
         foreach ($info as $file) {
             $image = $file['savepath'] . $file['savename'];
             $size = $file['size'];
         }
     }
     $id = I('post.id');
     //**获取栏目的下级所有子栏目
     $m = D('Column')->select();
     $m = Category::getChilds($m, $id);
     //获取id所有的下级栏目的信息
     //将二维数组变成一维数组
     foreach ($m as $value) {
         $data[] = $value['id'];
     }
     $data[] = $id;
     //dump($data);
     //exit;
     $m = D('Column');
     //数据库表,配置文件中定义了表前缀,这里则不需要写
     //判断id是数组还是一个数值
     if (is_array($data)) {
         $where = 'id in(' . implode(',', $data) . ')';
         //implode() 函数返回一个由数组元素组合成的字符串
     } else {
         $where = 'id=' . $data;
     }
     //dump($where);
     //exit;
     $date['column_images'] = $image;
     $date['column_imgsize'] = $size;
     $count = $m->where($where)->save($date);
     //修改表单用save函数
     if ($count > 0) {
         $this->success('上传图片成功!', U('Banner/index'));
     } else {
         $this->error('上传图片失败!');
         //$this->error($m->geterror());
     }
 }