TP框架多上传域上传图片
问题:
学习使用TP框架做电商网站是,添加商品表单需要上传商品logo和商品图片pics,有两个上传域,第一个上传域是logo,只上传一张,第二个上传域是pics,上传多张图片。使用如下代码,总是报错:非法上传文件!
$upload = \Think\Upload; $info=$upload->upload();
解决方法:
有多个上传域时,应如下使用upload方法,指定要处理的上传域:
$upload = \Think\Upload;
$info1 = $upload->upload(array('logo'=>$_FILES['logo']);
$info2 = $upload->upload(array('pics'=>$_FILES['pics']);
参考资料:
Title:
TP框架上传图片时报错“非法上传"处理
Content:
TP框架上传图片时报错“非法上传"处理,主要注意以下两点:
1.$_FILES中有多个上传域问题,所以针对不同的上传域,区别命名;
2.如同个上传域中有一些没有上传图片,则要重新收集好上传的信息(收集成非空的一维数组);
具体代码如下;
第一种情况:
if($this->_hasImg()) 02. { 03. // 只上传表单中name叫做jqimg的图片 04. $info = $upload->upload(array('jqimg'=>$_FILES['jqimg'])); 05. if(!$info) 06. redirect(U('Ad/Ad/save/id/'.$ad_id), 3, $upload->getError()); 07. // 循环每一张图片,插入到jq-info表 08. foreach ($info as $k => $v) 09. { 10. $url = $v['savepath'] . $v['savename']; 11. $this->execute("INSERT INTO sh_ad_jq_info(img_url,ad_link,ad_id) VALUES('$url','{$_POST['jqtxt'][$k]}',$ad_id)"); 12. } 13. } 14. // 处理修改的图片 15. if(isset($_POST['oldjqtxt'])) 16. { 17. // 先上传图片修改的图片 18. $info = $upload->upload(array('oldjqimg'=>$_FILES['oldjqimg'])); 19. $_k = 0; 20. foreach ($_POST['oldjqtxt'] as $k => $v) 21. { 22. // 有没有上传新图片 23. if($info && isset($info[$_k])) 24. { 25. // 上传了新图片 26. // 先删除原图 27. $_ourl = $this->query('SELECT img_url FROM sh_ad_jq_info WHERE id = '.$k); 28. @unlink(IMG_URL_HD . $_ourl[0]['img_url']); 29. // 再更新为新图 30. $_url = $info[$_k]['savepath'] . $info[$_k]['savename']; 31. $this->execute("UPDATE sh_ad_jq_info SET ad_link='$v',img_url='$_url' WHERE id=$k"); 32. } 33. else 34. { 35. $this->execute("UPDATE sh_ad_jq_info SET ad_link='$v' WHERE id=$k"); 36. } 37. $_k++; 38. } 39. } 40. }
第二种情况:
foreach($_FILES['imgjq_url']['tmp_name'] as $k=>$v) 02. { 03. 04. if($v) 05. { 06. //删除原有硬盘图片 07. $img_url = $this->query("SELECT imgjq_url FROM sh_ad_jq_info WHERE id = $k"); 08. 09. @unlink(IMG_URL_HD .$img_url[0]['imgjq_url'] ); 10. 11. 12. //收集图片信息 13. $arr = array(); 14. $arr['name'] = $_FILES['imgjq_url']['name'][$k]; 15. $arr['type'] = $_FILES['imgjq_url']['type'][$k]; 16. $arr['tmp_name'] = $_FILES['imgjq_url']['tmp_name'][$k]; 17. $arr['error'] = $_FILES['imgjq_url']['error'][$k]; 18. $arr['size'] = $_FILES['imgjq_url']['size'][$k]; 19. 20. 21. //上传图片处理 22. $imgInfo = $upload->upload(array('imgjq_url' =>$arr )); 23. 24. if (!$imgInfo) { 25. echo $upload->getError();die; 26. } 27. 28. $imgjq_url = $imgInfo['imgjq_url']['savepath'].$imgInfo['imgjq_url']['savename']; 29. 30. //更新到数据库 31. $this->execute("UPDATE sh_ad_jq_info SET imgjq_url = '$imgjq_url' WHERE id = $k"); 32. 33. } 34. }
转载于:https://www.cnblogs.com/liuyun90/p/5695540.html
TP框架多上传域上传图片相关推荐
- tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法
1.config.php配置文件里配置七牛云密钥等 里面 secretKey accessKey domain bucket对应换成自己七牛云申请的, 步骤: (1)七牛云注册成功后-对象存储申请10 ...
- tp5 接收图片_TP5框架实现上传多张图片的方法分析
本文实例讲述了TP5框架实现上传多张图片的方法.分享给大家供大家参考,具体如下: 1.效果图(每点击一次'添加选项',就会有一个新的 file 框来添加新的图片) 2.view 添加 $(" ...
- tp5多图上传php,TP5框架实现上传多张图片的方法分析
本文实例讲述了tp5框架实现上传多张图片的方法.分享给大家供大家参考,具体如下: 1.效果图(每点击一次'添加选项',就会有一个新的 file 框来添加新的图片) 2.view 添加 $(" ...
- 19、HTML文件上传域
文件上传是网站中一种常见的功能.例如百度网盘.QQ 邮箱以及有道云笔记都可以实现文件的上传.在 HTML 中,把 <input> 标签的 type 属性设置为 file 就可以实现上传文件 ...
- 【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。
在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录. 我使用UUID生成8级目录,在webapp下创建目录,将图片传进 ...
- 解决使用elementUI框架el-upload上传组件时session丢失问题
解决使用elementUI框架el-upload上传组件时session丢失问题 参考文章: (1)解决使用elementUI框架el-upload上传组件时session丢失问题 (2)https: ...
- HTML5文件上传域的小例子
先上图 文件上传进度条.获取上传的文件信息.读取图片绑定到img元素之类的 代码 <!DOCTYPE html><html> <head><meta char ...
- 华为云 对象存储服务 OBS 上传文件 上传图片 PHP Laravel
语言:php 框架:laravel 简介:将项目上所有的 图片.pdf文件.视频等上传到华为云 并获取到华为云的文件地址进行访问 准备工作 composer准备 1.composer.json里添加需 ...
- OCR身份证实名认证+图片上传+拍照上传图片(自用)
chooseImage() {const that = this;Taro.chooseImage({sizeType: ["original", "compressed ...
最新文章
- LeetCode简单题之检查字符串是否为数组前缀
- labview如何进行串口通讯
- 计算机设置从光盘启动怎么办,设置BIOS从光盘启动教程
- Spring 事务基于注解和xml方式
- SAP Business Application Studio 如何同 SAP BTP CloudFoundry 环境绑定
- axure选中后横线切换_Axure8.0|动态面板内容简单切换技巧
- 【今日CS 视觉论文速览】31 Dec 2018
- MyEclipse设置代码自动补全,及取消空格和‘=’补全
- 002.AngularJs调用Restful实现CRUD
- java类型之间的转换_java类型之间的转换
- php没有输出报错信息的解决
- 循环队列 代码实现(FIFO)
- eclipse快速导包快捷键_【IntelliJ IDEA mac新手入门】IDEA如何快速搭建Java开发环境...
- CTF攻防世界刷题51-
- 评测了10款画流程图软件,这4款最好用!(完全免费)
- hdu_5145_NPY and girls(莫队算法+组合)
- appium ios端自动化测试配置
- 威尔特拉斯定理_什么是数学 (R·柯朗 H·罗宾 著)
- DirectX9.0 DirectxSDK下载 DirectX9.03D游戏开发编程基础PDF+源代码
- 【matplotlib】图片的各种渲染效果;matplotlib.cm
热门文章
- 应该怎么样学习前端呢?
- 前端工作、学习中常用工具推荐
- c++ gzip java.util.zip.gzip_java.util.zip.GZIPInputStream.close()方法示例
- hexo需要先编辑好html文件吗,教你定制Hexo的landscape打造自己的主题_html/css_WEB-ITnose...
- python如何使用字典中的值并进行比较_比较字典python中的值
- php下的ssm模式,编码风格:Mvc模式下SSM环境,代码分层管理
- nor flash驱动编写步骤
- Python风格总结:面向对象
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)
- 你真的需要 @DirtiesContext?