thinkphp 多图和单图上传处理 (我认为这个方法更好吧 比我以前写的 高效了不少)
来源:互联网 发布:软件实施全过程 编辑:程序博客网 时间:2024/05/19 00:10
我这个方法是写在model里面的,
这个方法的返回值是:
如果是单图 返回的是 $data['图片name'] = 图片路径;
如果是多图 返回的是 $data['图片的name']['图片的下标'] = 图片的路径
多图直接 input name="xxx[]" 即可 会分辨没有上传的下标
方法越来越完美 , 我缺开始要用tp5了 人总是要在进步, tp5的方法我相信我会写的比现在还好
//图片处理 public function pic($file){ $upload = new \Think\Upload(C('IMG_ATTRIBUTE')); $upload->savePath = 'mxdesigner/'; $data = []; if(is_array($file)){ //遍历上传图片 foreach($file as $key => $v){ //判断是否是多图上传:多图处理 if(count($v) !== count($v,1)){ $temporary = $upload->upload([$v]); foreach($temporary as $k => $value){ $data[$key][$k] = $value['savepath'].$value['savename']; } }else{ //这些是单图的处理 $info = $upload->uploadOne($v); if($info){ $data[$key] = $info['savepath'].$info['savename']; } } } return $data; }else{ $this -> getError($upload -> getError()); } }觉得这个方法还得加工下, 今天重新完工了 目前没找到BUG , //明星设计师添加和修改 public function addData($data){ $children_id = $data['children_id']; $workorder = $data['workorder']; if(!empty($data['styles'])){ $data['styles'] = implode(',',$data['styles']); } //通过主键id是否存在判断是添加还是修改 if(!empty($data['id'])) $parent_id = $this -> save($data); else $parent_id = $this -> add($data); //证明数据写入成功,给附表添加数据 添加 if($parent_id > 0){ if(isset($data['pic'])){ foreach ($data['pic'] as $key => $value) { //临时值 组合数据 $temporary = [ 'pic' => $value, 'workorder' => $data['workorder'][$key], 'designer_id' => $parent_id, ]; M('Mxpic') -> add($temporary); } } return $parent_id; //修改数据 }elseif($parent_id !== false){ //修改+新上传 if(isset($data['pic'])){ //通过children_id 判断是否是新增属性 从而做判断 foreach ($workorder as $key => $value) { //临时值 组合数据 $temporary = [ 'workorder' => $value, 'designer_id' => $data['id'], ]; //排序和子id必须存在 图片可以存在 则为修改 if(isset($value) && isset($children_id[$key]) || isset($data['pic'][$key])){ $temporary['id'] = $children_id[$key]; if(isset($data['pic'][$key])) $temporary['pic'] = $data['pic'][$key]; M('Mxpic') -> save($temporary); } //排序和图片存在,子id不存在则为新增 if(isset($data['pic'][$key]) && isset($value) && !empty($children_id[$key])){ $temporary['pic'] = $data['pic'][$key]; M('Mxpic') -> add($temporary); } } //证明没有上传 }else{ //临时值 组合数据 foreach($children_id as $key => $v){ $temporary = [ 'id' => $v, 'workorder' => $data['workorder'][$key], ]; M('Mxpic') -> save($temporary); } } } } //图片处理 public function pic($file){ $upload = new \Think\Upload(C('IMG_ATTRIBUTE')); $upload->savePath = 'mxdesigner/'; $data = []; if(is_array($file)){ //遍历上传图片 foreach($file as $key => $v){ //判断是否是多图上传:多图处理 if(count($v) !== count($v,1)){ $temporary = $upload->upload([$v]); foreach($temporary as $k => $value){ $data[$key][$k] = $value['savepath'].$value['savename']; } }else{ //这些是单图的处理 $info = $upload->uploadOne($v); if($info){ $data[$key] = $info['savepath'].$info['savename']; } } } return $data; }else{ $this -> getError($upload -> getError()); } }
阅读全文
1 0
- thinkphp 多图和单图上传处理 (我认为这个方法更好吧 比我以前写的 高效了不少)
- POJ 2613 组合数的比(好吧,我承认我又写复杂了)
- 比以前更帅气了的飞鸽传书
- WinXP 比 Win2008R2 更高效? 我反正信了.
- 新写机器猫游戏,国内写机器猫游戏的不多,所以我这个是原创了,呵呵(图)
- 我想,自己慢慢地适应了从学生到职场人的转变,上个月的表现比以前强了不少。继续努力!
- 这个刚开始写博客,就先把自己以前总结的Git的一些语法写上去吧,不说全,还是不少的
- 好吧我来了。
- 好吧,我笑了
- 好吧,我也开始写学习博客了
- thinkPHP 上传多图出问题,修复方法
- php单图上传,多图上传,图片批量上传,图片异步上传Thinkphp整合kindeditor
- thinkphp+js写的多文件上传
- Android 比ArrayMap更高效的SparseArray
- Redhat 5 下 Oracle10g 安装,相信没有比这个更全的了
- 2016名企校招时间表出炉~~再没有比这个更全面的信息了
- 好吧,我承认我喜欢这样的多个 StoryBoard 组织的方式,学习了!
- 写了个邮箱上传工具,将以前的Wup更新了。。。
- 线程
- Delphi整理五(枚举、子界、集合)
- 奇异值分解(SVD)原理详解及推导
- Fresco
- shiping
- thinkphp 多图和单图上传处理 (我认为这个方法更好吧 比我以前写的 高效了不少)
- iOS-新手引导页+标签控制器
- 转行人士如何在人工智能领域保持一定的竞争力?
- ubuntu14.04 英伟达显卡 安装cuda 8 解决循环登录问题
- 在训练网络的时候,验证集误差是比测试集误差低还是高? | 社区问答
- 线程 猜数字
- EventBus 3.0实现Activity和fragment通信、fragment和fragment通信
- 10分钟搞懂神经网络的容量 | Neural Networks #5
- caffe model转json