cmf nnmware_thinkphp/thinkcmf多图上传并保存到数据库

// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]

// +----------------------------------------------------------------------

// | Copyright (c) 2013-2014 http://www.thinkcmf.com All rights reserved.

// +----------------------------------------------------------------------

// | Author: Dean

// +----------------------------------------------------------------------

namespace Portal\Controller;useCommon\Controller\HomebaseController;class ListController extendsHomebaseController {//ajax提交信息存入数据库开始

public functionad()

{if(empty($_POST))//如果$_POST空,显示添加页面,

{echo ‘您输入的内容不能为空!‘;

}else //如果$_POST不为空,走验证,验证是否成功,添加数据库

{$n = D("posts");$ter = D("term_relationships");//此表是设置添加的文章的object_id,term_id

$sel = $_POST["sel"];$sel = str_replace(‘|‘, ‘‘, $sel);//因为表中某些字段的值用"|"分割读取,所以此方法是把前台传过来的字符串中的"|"过滤掉

$price = $_POST["price"];$price = str_replace(‘|‘,‘‘, $price);$data[‘post_sm‘] = $sel;$data[‘post_status‘] = 0;//添加文章之后,如果不设置为0(设置为1的时候表示审核通过,在前台能直接调取出来),在后台文章里面不显示,管理员无法审核

$data[‘post_tele‘]= $price;$data[‘smeta‘] =‘{"thumb":"portal\\/20170504\\/58f024bc2febf.jpg","template":"articel_esfang","photo":[{"url":"portal\\/20170409\\/58ea3d3dae455.jpg","alt":"\\u88571"},{"url":"portal\\/20170409\\/58ea3d459059f.jpg","alt":"\\u88572"}]}‘;//先把固定的图片的路径存到数据库中,在upload()方法中,如果用户不添加图片的话,此三张图片就为默认图片

if(!empty($sel) && !empty($price))

{$nn = $n->add($data);$dt[‘object_id‘] = $nn;$dt[‘term_id‘] = 55;//自定义

$dt[‘status‘] = 1;$tern = $ter->add($dt);

session(id, $nn);//$nn为此条信息的主键值

if($nn && $tern)

{echo "您发布的信息已传送到后台,请耐心等待审核。。。";

}else{echo "您发布的信息未传送至后台,请重新发布信息或联系客服!";

}

}else{echo "您有重要信息未填写,请返回发布信息页面完善重要信息!";

}

}

}//ajax提交信息存入数据库结束

//图集上传开始

public function upload()//核心:根据id为$nn,修改图片路径(save)

{$nn = session(id);//接收ad方法里面存的session值

$xc = M("posts");$re = M("term_relationships");$upload = new \Think\Upload();//实例化上传类

$upload->maxSize = 3145728; //设置上传文件的大小

$p = $upload->rootPath=‘./data/upload/portal‘; //相对路径

$sp = $patht = $upload->savePath = ‘/‘;//和rootPath配合使用,路径为./Public/Uploads

$upload->saveName = array(‘uniqid‘,‘‘);//上传文件的保存规则,支持数组和字符串方式定义

$upload->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);//上传文件的类型

$upload->autoSub = true;//自动使用子目录保存上传文件 默认为true,

$upload->subName = array(‘date‘,‘Ymd‘);//子目录创建方式,采用数组或者字符串方式定义,和autosub配合使用

$info = $upload->upload();/*var_dump($info);

die();*/

if(!$info)

{//上传错误提示错误信息

//$this->error($upload->getError());

$this->success(‘系统配图中...‘, ‘javascript:history.back(-1);‘,3);

}else{//上传成功

if($info[1] == null || $info[2] == null)//如果第二张或者第三张图片为空值,返回错误信息

{$this->success(‘上传图片数量不够,请重新上传三张图片...‘);$xc->delete($nn);//因为先走ad方法,ajax返回之后再提交表单图片到此方法,所以在表中已经有此条数据,如果用户添加的图片不够,显示错误提示,根据$nn删除两个表中的数据

$re->where("object_id = $nn")->delete();

}else{foreach($info as $key => $f)

{$alt = substr($f[‘sha1‘],3,10);$savepath = substr($f[‘savepath‘], 1,-1);if ($key == 0)//在后台文章中显示第一张图片为缩略图,二、三张为相册图集里面的图片,所以根据thinkcmf的图片路径规则来保存

{$sta = ‘{"‘.‘thumb":"portal\\/‘.$savepath.‘\/‘.$f[‘savename‘].‘","template":"articel_esfang","photo":‘;

}else{$str .= ‘{"‘.‘url":"portal\\/‘.$savepath.‘\/‘.$f[‘savename‘].‘","alt":"‘.$alt.‘"},‘;

}

}$stt = $sta.‘[‘.substr($str,0,-1).‘]}‘;$wh[‘id‘] = $nn;$wh[‘smeta‘] = $stt;$xc->save($wh);//根据$nn修改smeta

session(null);//清session

$this->success(‘图片上传中...‘, ‘javascript:history.back(-1);‘,0);

}

}

}//图集上传结束

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值