이 글은 주로 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("文件过大"); }
if(!is_uploaded_file($file[‘tmp_name'])){ exit(“文件不是通过HTTP POST上传”); }
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
In php
여러 파일 업로드여러 파일 업로드max_file_uploads 제한 문제와 관련된 PHP 솔루션
PHP
위 내용은 PHP에서 여러 파일을 업로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!