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()); } } } }
/** * 单个上传图片 */ 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()); } }
/** * 文件上传 */ 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()); } }