검과 요정의 전설 5 프리퀄 브랜치 TP 프레임워크 다중 업로드 도메인 업로드 사진

WBOY
풀어 주다: 2016-07-28 08:25:30
원래의
1222명이 탐색했습니다.

질문:

TP 프레임워크를 사용하여 전자상거래 웹사이트를 구축하는 방법을 배울 때 제품 양식을 추가할 때 제품 로고와 제품 이미지 사진을 업로드해야 합니다. 첫 번째 업로드 도메인은 로고이고 하나만 업로드되고 두 번째 업로드 도메인은 사진이며 여러 장의 사진을 업로드합니다. 다음 코드를 사용하면 항상 오류가 보고됩니다: 잘못된 파일 업로드!

<span>$upload</span> =<span> \Think\Upload;
</span><span>$info</span>=<span>$upload</span>->upload();
로그인 후 복사

해결책:

업로드 도메인이 여러 개인 경우 다음과 같은 업로드 방법을 사용하여 처리할 업로드 도메인을 지정해야 합니다.

$upload = \Think\Upload;
$info1 = $upload->upload(array('logo'=>$_FILES['logo']);
$info2 = $upload->upload(array('pics'=>$_FILES['pics']);
로그인 후 복사

참고:

제목:

TP 프레임 사진 업로드 중 "불법 업로드" 오류가 보고됩니다.

내용:

TP 프레임워크에서 이미지를 업로드할 때 "불법 업로드" 오류가 보고됩니다. 다음 두 가지에 주의하세요. 포인트:

1. $_FILES에 업로드 도메인이 여러 개 있으므로 업로드 도메인마다 이름이 다르게 지정됩니다.

2. 동일한 업로드 도메인에 업로드된 이미지가 여러 개 있는 경우, 업로드된 정보를 다시 수집합니다( 비어 있지 않은 1차원 배열로 수집).

구체적인 코드는 다음과 같습니다.

첫 번째 경우:

<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 프리퀄 브랜치의 콘텐츠를 포함하여 검과 요정 5 프리퀄 브랜치의 이미지 다중 업로드 도메인 업로드를 위한 TP 프레임워크를 소개했습니다. PHP 튜토리얼에 관심이 있습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿