> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP_php 예제를 캡슐화하는 파일 업로드 방법의 예

ThinkPHP_php 예제를 캡슐화하는 파일 업로드 방법의 예

WBOY
풀어 주다: 2016-05-16 20:33:28
원래의
956명이 탐색했습니다.

이 기사의 예에서는 ThinkPHP를 캡슐화하고 참조용으로 모든 사람과 공유하는 파일 업로드 방법을 설명합니다. 세부 내용은 다음과 같습니다.

요즘 WBlog의 업로드 기능이 최적화되었습니다. 향상된 업로드 기능은 썸네일 업로드, 사진 업로드, 워터마크 생성, 파일 업로드를 구현할 수 있으며, 업로드된 첨부파일의 크기(파일 크기), 유형(파일 형식), 워터마크(사진의 경우)를 백그라운드에서 설정할 수 있습니다. 또한, 업로드된 파일을 해당 폴더에 분류하여 저장할 수 있어 관리가 용이합니다.

다음은 향상된 업로드 기능에 대한 간략한 설명입니다.

썸네일 업로드

기존 썸네일 업로드 기능은 KindEditor의 업로드 구성요소를 사용했습니다. 업로드하기 전에 이미지를 썸네일로 만들지 않으면 원본 이미지가 업로드됩니다. 원본 이미지를 업로드하면 설정된 크기의 이미지가 생성되며 원본 이미지는 자동으로 삭제되므로 스팸 축적을 효과적으로 줄일 수 있습니다. 업로드된 썸네일은 자동으로 Thumb 폴더에 저장됩니다

이미지 업로드

사진을 업로드하면 사진 크기, 업로드된 사진 유형을 설정하고 필요에 따라 워터마크를 추가할 수 있습니다.

파일 업로드

압축파일, 문서파일 등 필요에 따라 업로드 파일 형식과 크기를 추가할 수 있습니다.

워터마크 추가

업로드된 이미지에 워터마크를 추가하세요.

위의 업로드 기능을 모델 클래스 AttachModel.class.php에 캡슐화하고 이를 수행하기 위해 두 가지 방법을 사용했습니다.

코드 복사 코드는 다음과 같습니다.

/**       
* 첨부파일 업로드 : 이미지, 썸네일, 파일 업로드
* @param string $model 업로드가 위치한 모듈 *
* @param bool $type 업로드된 파일 유형: 이미지(picture); 썸네일(thumbnail) 파일(file)
​*/
~ 공개 함수 업로드($model = null, $type = 'image'){ 
            //업로드 클래스 가져오기                                                                  import('ORG.NET.UploadFile');                                            $upload = new UploadFile();                                                             $upload->saveRule = 'uniqid'; //업로드 파일 규칙 설정                                                              >                                                          >                                                                                                  if ($model){                                                                         $upload->savePath = './Public/Uploads/'.$model.'/';                                                       If (!file_exists($upload->savePath)) {
                    mkdir($upload->savePath);                                                        ~ ~                $upload->savePath = './Public/Uploads/Thumb/';                                                     If (!file_exists($upload->savePath)) {
                    mkdir($upload->savePath);                                                     ~                                                                 if (in_array($type,array('image','thumb'))){                                              $upload->thumb = true;                                           $upload->thumbRemoveOrigin = true;// //원본 이미지 삭제
              $upload->thumbPrefix = 'wb_';                                                                 $upload->thumbMaxWidth = $type=='thumb' ? C('THUMB_W') :C('IMAGE_W');//썸네일 너비                                                                         $upload->thumbMaxHeight = $type=='thumb' ? C('THUMB_H') :C('IMAGE_H');//썸네일 높이                                                                            ~                                                        If (!$upload->upload()) {                                                       $upload->getErrorMsg() 반환;                                                     ~               $uploadlist = $upload->getUploadFileInfo();                                            If(C('ISWATER') && $type=='이미지'){                                                                           가져오기('ORG.Util.Image');                                                                       //m_thumbnail에 워터마크 추가 Image::water('원본 파일 이름', '워터마크 이미지 주소')                                             foreach($uploadlist를 $key => $value로){                                                 Image::water($value['savepath'] . 'wb_' . $value['savename'], './Public/admin/images/water.png'); ~ ~                                                                 if (in_array($type,array('image','file'))){                                              return $this->_add($uploadlist,$model);                                             ~               $uploadlist[0]['savename']을 반환합니다.//썸네일 저장 이름을 반환합니다.                     ~ }  
/* 
* 업로드된 첨부파일은 첨부에 필요한 데이터에 통합되어 테이블에 저장되고 배열로 반환됩니다
. * */
개인 함수 _add($uploadlist,$module=''){
          //$j = count($uploadlist);                                           $v = 배열();                                             foreach($uploadlist를 $key => $value로){ ~ ~ ~ ~     ~                             ~                                              >                                     ~ ~                                 > ~ ~                                                   $this->add($v[$key]);                                                     > > ~ ~                                       ~                $v[$key]['id'] = M('Attach')->getLastInsID();                                                                                                                      $v 반환;                                     }

이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.

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