Home > Backend Development > PHP Tutorial > Legend of Sword and Fairy 5 prequel branch TP framework multi-upload domain upload pictures

Legend of Sword and Fairy 5 prequel branch TP framework multi-upload domain upload pictures

WBOY
Release: 2016-07-28 08:25:30
Original
1266 people have browsed it

Question:

When learning to use the TP framework to build an e-commerce website, when adding a product form, you need to upload product logos and product image pics. There are two upload domains. The first upload domain is the logo. Only one upload is uploaded, and the second one is uploaded. The domain is pics, upload multiple pictures. When using the following code, an error is always reported: Illegal file upload!

<span>$upload</span> =<span> \Think\Upload;
</span><span>$info</span>=<span>$upload</span>->upload();
Copy after login

Solution:

When there are multiple upload domains, you should use the upload method as follows to specify the upload domain to be processed:

$upload = \Think\Upload;
$info1 = $upload->upload(array('logo'=>$_FILES['logo']);
$info2 = $upload->upload(array('pics'=>$_FILES['pics']);
Copy after login

Reference:

Title:

T P framework will report an error of "illegal upload" when uploading pictures

Content:

TP framework will report an error of "illegal upload" when uploading pictures. Pay attention to the following two points:

1. There are multiple upload domains in $_FILES problem, so different upload domains are named differently;

2. If there are some uploaded images in the same upload domain, the uploaded information must be collected again (collected into a non-empty one-dimensional array);

Specific code As follows;

First case:

<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.            }  
Copy after login

Second case:

<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.            } 
Copy after login

The above has introduced the TP framework for multi-upload domain uploading of images in the Legend of Sword and Fairy 5 prequel branch, including the content of the Legend of Sword and Fairy 5 prequel branch. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template