TP框架多上传域上传图片
2018-06-22 04:53:34来源:未知 阅读 ()
问题:
学习使用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. }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- php判断文件上传图片格式的实例详解 2020-02-17
- 简单实现php上传文件功能 2020-02-15
- php生成条形码的图片的实例详解 2020-01-17
- Laravel框架实现redis集群的方法分析 2020-01-17
- thinkPHP框架中执行原生SQL语句的方法 2020-01-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash