>  기사  >  백엔드 개발  >  PHP에서 여러 파일을 업로드하는 방법

PHP에서 여러 파일을 업로드하는 방법

墨辰丷
墨辰丷원래의
2018-05-25 10:51:142016검색

이 글은 주로 PHP에서 여러 파일을 업로드하기 위한 샘플 코드에 대한 관련 정보를 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

여러 파일 업로드

1. 여러 파일 정보를 연산하기 전에 먼저 파일 정보를 빌드하고, buildInfo 함수를 사용하여 3차원 배열을 파일 연산에 편리한 2차원 배열로 변환해야 합니다.

function buildInfo(){
  $i = 0;
  foreach ($_FILES as $v){
    //判断是否是单文件
    if(is_string($v['name'])){
      $files[$i] = $v;
      $i++;
    }else{
      //多文件
      foreach ($v['name'] as $key => $value){
        $files[$i]['name'] = $value;
        $files[$i]['size'] = $v['size'][$key];
        $files[$i]['tmp_name'] = $v['tmp_name'][$key];
        $files[$i]['type'] = $v['type'][$key];
        $files[$i]['error'] = $v['error'][$key];
        $i++;
      }
    }
  }
  return $files;
}

단일 파일과 다중 파일 사이의 판단은 파일 배열의 유형, 단일 파일(2차원 배열), 다중 파일(3차원 배열)에 따라 결정됩니다.

2. 파일 업로드 함수 및 매개변수


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


function uploadFiles($path = "uploads", $allowExt = array("jpg", "gif", "png" , "wbmp"), $maxSize = 1048576, $imgFlag = true)

path, 디렉토리 저장. allowedExt, 허용되는 확장의 배열. maxSize최대 업로드 파일 크기입니다. imgFlag, 이미지 파일 식별자.

3. 파일이 저장된 디렉터리가 있는지 확인합니다

if(!file_exists($path)){
    mkdir($path, 0777, true);
  }

4. 생성된 파일 정보를 전달하고 파일에 저장합니다

$i = 0;
$files = buildInfo();

5.

foreach ($files as $file){
    if($file['error'] == UPLOAD_ERR_OK){
}else{
    switch ($file['error']){
      case 1:
        $mes = "超过配置文件上传文件大小";
        break;
      case 2:
        $mes = "超过了表单设置";
        break;
      case 3:
        $mes = "文件部分被上传";
        break;
      case 4:
        $mes = "没有文件上传";
        break;
      case 6:
        $mes = "没找到临时目录";
        break;
      case 7:
        $mes = "文件不可写";
        break;
      case 8:
        $mes = "由于PHP的扩展程序中断了文件上传";
        break;
    }

6. 파일 형식 제한

if($file['error'] == UPLOAD_ERR_OK){
      $ext = getExt($file['name']);
      if(!in_array($ext, $allowExt)){
        exit("非法文件类型");
      }

7. 사진 형식이 맞는지 제한하세요

if($imgFlag){
        if(!getimagesize($file['tmp_name'])){
          exit("不是真的图片类型");
        }
      }

8.

9. 게시물을 통해 파일이 업로드되었는지 확인

if($file['size'] > $maxSize){
        exit("文件过大");
      }

10. 파일 이름을 변경하고(고유 및 중복되지 않음) 대상 디렉터리에 저장합니다.

if(!is_uploaded_file($file[‘tmp_name'])){ 
exit(“文件不是通过HTTP POST上传”); 
}

파일 정보 배열에 이름을 다시 씁니다. 변수 파일['error'] 및 파일[ 'tmp_name']을 삭제합니다. 마지막으로 성공적으로 업로드된 파일을 uploadFiles 배열에 저장합니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

In php

여러 파일 업로드

max_file_uploads 제한 문제

여러 파일 업로드

max_file_uploads 제한 문제와 관련된 PHP 솔루션
PHP

여러 파일 업로드

、여러 장의 사진을 위한 샘플 코드

위 내용은 PHP에서 여러 파일을 업로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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