仙剑奇侠传5前传支线 TP框架多上传域上传图片
问题:
学习使用TP框架做电商网站是,添加商品表单需要上传商品logo和商品图片pics,有两个上传域,第一个上传域是logo,只上传一张,第二个上传域是pics,上传多张图片。使用如下代码,总是报错:非法上传文件!
<span>$upload</span> =<span> \Think\Upload; </span><span>$info</span>=<span>$upload</span>->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.如同个上传域中有一些没有上传图片,则要重新收集好上传的信息(收集成非空的一维数组);
具体代码如下;
第一种情况:
<span>if</span>(<span>$this</span>-><span>_hasImg()) </span>02.<span> { </span>03. <span>//</span><span> 只上传表单中name叫做jqimg的图片 </span>04. <span>$info</span> = <span>$upload</span>->upload(<span>array</span>('jqimg'=><span>$_FILES</span>['jqimg'<span>])); </span>05. <span>if</span>(!<span>$info</span><span>) </span>06. redirect(U('Ad/Ad/save/id/'.<span>$ad_id</span>), 3, <span>$upload</span>-><span>getError()); </span>07. <span>//</span><span> 循环每一张图片,插入到jq-info表 </span>08. <span>foreach</span> (<span>$info</span><span>as</span><span>$k</span> => <span>$v</span><span>) </span>09.<span> { </span>10. <span>$url</span> = <span>$v</span>['savepath'] . <span>$v</span>['savename'<span>]; </span>11. <span>$this</span>->execute("INSERT INTO sh_ad_jq_info(img_url,ad_link,ad_id) VALUES('<span>$url</span>','{<span>$_POST</span>['jqtxt'][<span>$k</span>]}',<span>$ad_id</span>)"<span>); </span>12.<span> } </span>13.<span> } </span>14. <span>//</span><span> 处理修改的图片 </span>15. <span>if</span>(<span>isset</span>(<span>$_POST</span>['oldjqtxt'<span>])) </span>16.<span> { </span>17. <span>//</span><span> 先上传图片修改的图片 </span>18. <span>$info</span> = <span>$upload</span>->upload(<span>array</span>('oldjqimg'=><span>$_FILES</span>['oldjqimg'<span>])); </span>19. <span>$_k</span> = 0<span>; </span>20. <span>foreach</span> (<span>$_POST</span>['oldjqtxt'] <span>as</span><span>$k</span> => <span>$v</span><span>) </span>21.<span> { </span>22. <span>//</span><span> 有没有上传新图片 </span>23. <span>if</span>(<span>$info</span> && <span>isset</span>(<span>$info</span>[<span>$_k</span><span>])) </span>24.<span> { </span>25. <span>//</span><span> 上传了新图片 </span>26. <span>//</span><span> 先删除原图 </span>27. <span>$_ourl</span> = <span>$this</span>->query('SELECT img_url FROM sh_ad_jq_info WHERE id = '.<span>$k</span><span>); </span>28. @<span>unlink</span>(IMG_URL_HD . <span>$_ourl</span>[0]['img_url'<span>]); </span>29. <span>//</span><span> 再更新为新图 </span>30. <span>$_url</span> = <span>$info</span>[<span>$_k</span>]['savepath'] . <span>$info</span>[<span>$_k</span>]['savename'<span>]; </span>31. <span>$this</span>->execute("UPDATE sh_ad_jq_info SET ad_link='<span>$v</span>',img_url='<span>$_url</span>' WHERE id=<span>$k</span>"<span>); </span>32.<span> } </span>33. <span>else</span> 34.<span> { </span>35. <span>$this</span>->execute("UPDATE sh_ad_jq_info SET ad_link='<span>$v</span>' WHERE id=<span>$k</span>"<span>); </span>36.<span> } </span>37. <span>$_k</span>++<span>; </span>38.<span> } </span>39.<span> } </span>40. }
第二种情况:
<span>foreach</span>(<span>$_FILES</span>['imgjq_url']['tmp_name'] <span>as</span><span>$k</span>=><span>$v</span><span>) </span>02.<span> { </span>03. 04. <span>if</span>(<span>$v</span><span>) </span>05.<span> { </span>06. <span>//</span><span>删除原有硬盘图片 </span>07. <span>$img_url</span> = <span>$this</span>->query("SELECT imgjq_url FROM sh_ad_jq_info WHERE id = <span>$k</span>"<span>); </span>08. 09. @<span>unlink</span>(IMG_URL_HD .<span>$img_url</span>[0]['imgjq_url'<span>] ); </span>10. 11. 12. <span>//</span><span>收集图片信息 </span>13. <span>$arr</span> = <span>array</span><span>(); </span>14. <span>$arr</span>['name'] = <span>$_FILES</span>['imgjq_url']['name'][<span>$k</span><span>]; </span>15. <span>$arr</span>['type'] = <span>$_FILES</span>['imgjq_url']['type'][<span>$k</span><span>]; </span>16. <span>$arr</span>['tmp_name'] = <span>$_FILES</span>['imgjq_url']['tmp_name'][<span>$k</span><span>]; </span>17. <span>$arr</span>['error'] = <span>$_FILES</span>['imgjq_url']['error'][<span>$k</span><span>]; </span>18. <span>$arr</span>['size'] = <span>$_FILES</span>['imgjq_url']['size'][<span>$k</span><span>]; </span>19. 20. 21. <span>//</span><span>上传图片处理 </span>22. <span>$imgInfo</span> = <span>$upload</span>->upload(<span>array</span>('imgjq_url' =><span>$arr</span><span> )); </span>23. 24. <span>if</span> (!<span>$imgInfo</span><span>) { </span>25. <span>echo</span><span>$upload</span>->getError();<span>die</span><span>; </span>26.<span> } </span>27. 28. <span>$imgjq_url</span> = <span>$imgInfo</span>['imgjq_url']['savepath'].<span>$imgInfo</span>['imgjq_url']['savename'<span>]; </span>29. 30. <span>//</span><span>更新到数据库 </span>31. <span>$this</span>->execute("UPDATE sh_ad_jq_info SET imgjq_url = '<span>$imgjq_url</span>' WHERE id = <span>$k</span>"<span>); </span>32. 33.<span> } </span>34. }
以上就介绍了仙剑奇侠传5前传支线 TP框架多上传域上传图片,包括了仙剑奇侠传5前传支线方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
