>백엔드 개발 >PHP 튜토리얼 >Thinkphp 다중 파일 업로드 구현 method_php 예제

Thinkphp 다중 파일 업로드 구현 method_php 예제

WBOY
WBOY원래의
2016-05-16 20:33:431080검색

이 기사의 예는 Thinkphp의 다중 파일 업로드 구현 방법을 설명하며 참고용으로 모든 사람과 공유됩니다. 구체적인 구현 방법은 다음과 같습니다.

Thinkphp 매뉴얼에는 여러 파일을 업로드하는 방법이 명확하게 설명되어 있습니다. 여러 파일을 사용해야 하는 경우 양식을 수정하고 추가하기만 하면 됩니다.

코드 복사 코드는 다음과 같습니다.
<입력 유형='파일' 이름='사진 '>


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

  • <입력 유형='파일' 이름='사진2'>

  • <입력 유형='파일' 이름='사진3'>
  • 또는

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

  • <입력 유형='파일' 이름='사진[]'>

  • <입력 유형='파일' 이름='사진[]'>
  • 현재 업로드 양식 필드는 두 개입니다. 하나는 사진 업로드용이고 다른 하나는 동영상 업로드용입니다. 필드 이름은 이미지와 비디오입니다.
    HTML 코드는 다음과 같습니다

    코드 복사 코드는 다음과 같습니다.
    이미지:

    비디오:

    모델 코드:
    코드 복사 코드는 다음과 같습니다.
    protected $info= '';

    보호된 $_auto = 배열(
    array('image','upload',3,callback),//자동완성 메서드
    array('video','videoupload',3,callback), //자동완성 메소드
    );//업로드된 이미지를 자동으로 채워 썸네일을 생성합니다
    보호된 함수 업로드(){
    $var = $_FILES['이미지']['이름'];
    import('ORG.Net.UploadFile');
    $upload = 새로운 UploadFile();
    $upload->saveRule = 시간;
    $upload->allowExts = array('jpg', 'gif', 'png', 'zip','flv');
    $upload->thumb = true;
    //비디오 경로. . . flv 접미사만 지원됩니다.
    $upload->videopath = './Public/upload/Video/';
    $upload->savePath = './Public/upload/images/';
    $upload->thumbPrefix = '250_115_,150_110_,213_156_';
    $upload->thumbMaxWidth='250,150,213';
    $upload->thumbMaxHeight='115,110,156';
    if(!in_array('',$var) || !in_array('',$_FILES['video']['name'])){
    if(!$upload->upload()) {
    echo $upload->getErrorMsg();die;
    }그밖에{
    $this->info = $upload->getUploadFileInfo();
    if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
    return $this->info[1]['savename'];
    }elseif(!in_array('',$var)){
    return $this->info[0]['savename'];
    }그밖에{
    false를 반환합니다.
    }

    }
    }그밖에{
    반환 플래시;
    }
    }
    //동영상 업로드
    보호된 함수 videoupload(){
    if(!in_array('',$var) && !in_array('',$_FILES['video']['name'])){
    return $this->info[0]['savename'];
    }elseif(!in_array('',$_FILES['video']['name'])){
    return $this->info[1]['savename'];
    }그밖에{
    false를 반환합니다.
    }

    }

    글 말미에 다중 파일 업로드의 원리를 먼저 분석해 보겠습니다.
    코드 복사 코드는 다음과 같습니다.

  • <입력 유형='파일' 이름='사진[]'>

  • <입력 유형='파일' 이름='사진[]'>

  • 이는 양식 변수를 배열로 정의하는 것입니다. PHP에서 배열 특수 변수는 가변 길이의 여러 내용을 저장할 수 있으므로 다중 파일 업로드 상자를 사용자 정의할 수 있습니다. 그러면 PHP에서 처리할 때 어떻게 작동합니까? 예.
    코드 복사 코드는 다음과 같습니다.
    protected $_auto = array(
    array('image','upload',3,callback),//자동완성 메서드
    array('video','videoupload',3,callback), //자동완성 메소드
    );//업로드된 이미지를 자동으로 채워 썸네일을 생성합니다

    이는 thinkphp에게 그것이 배열 변수임을 알려준다. thinkphp가 이미 그렇게 했기 때문에 원래 PHP에서처럼 탐색된 배열의 길이를 판단하고 코드를 하나씩 업로드할 필요가 없다.

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

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.