>  기사  >  백엔드 개발  >  PHP 단일 파일 및 다중 파일 업로드 분석 예

PHP 단일 파일 및 다중 파일 업로드 분석 예

小云云
小云云원래의
2017-12-14 09:37:591380검색

이 글은 주로 PHP의 단일 파일 업로드와 다중 파일 업로드에 대한 코드와 문제 해결 방법에 대한 자세한 분석을 제공하므로 참고할 수 있기를 바랍니다.

$_FILES가 빈 배열인 경우는 언제인가요?

양식 제출 enctype이 php.ini 구성 파일의 multipart/form-data와 같지 않으면 file_uploads = Off이고 업로드된 파일 크기 > php.ini 구성 파일에 구성된 최대 업로드 크기

$_FILES가 나타납니다. 배열이 비어 있으면 위의 문제가 발생할 수 있으므로 해결해야 합니다!

파일을 선택하지 않고 바로 "업로드 버튼"을 클릭하면 $_FILES는 요소가 포함된 배열이 됩니다. 요소의 각 속성은 빈 문자열이며 오류 속성은 4

단일 파일 업로드

$ _FILES입니다. 데이터 구조

array(
  'filename' => array(
    'name' => 'xxx.png',
    'type' => 'image/png',
    'size' => 2548863,
    'tmp_name' => '/img/sdsdsd.png',
    'error' => 0
  )
)

단일 파일이든 여러 파일 업로드이든 5가지 고정 속성이 있습니다: 이름 / 크기 / 유형 / tmp_name / 오류

다중 파일 업로드

단일 파일 업로드와 비교하여 다중 파일 업로드는 다음과 같습니다. 처리하는 데 시간이 더 걸립니다. 프런트 엔드에 있는 두 개의 다중 파일 업로드 양식은 훨씬 더 복잡합니다

//name相同
<form method="post" enctype="multipart/form-data">
  <input type="file" name="wt[]"/>
  <input type="file" name="wt[]"/>
  <input type="submit" value="提交"/>
</form>

//name不同(简单点)
<form method="post" enctype="multipart/form-data">
  <input type="file" name="wt"/>
  <input type="file" name="mmt"/>
  <input type="submit" value="提交"/>
</form>

백엔드에 있는 $_FILES의 해당 데이터 구조가 다릅니다.

//name相同
array (size=1)
 'wt' => 
  array (size=5)
   'name' => 
    array (size=2)
     0 => string '新建文本文档 (2).txt' (length=26)
     1 => string '新建文本文档.txt' (length=22)
   'type' => 
    array (size=2)
     0 => string 'text/plain' (length=10)
     1 => string 'text/plain' (length=10)
   'tmp_name' => 
    array (size=2)
     0 => string 'C:\Windows\php1D64.tmp' (length=22)
     1 => string 'C:\Windows\php1D65.tmp' (length=22)
   'error' => 
    array (size=2)
     0 => int 0
     1 => int 0
   'size' => 
    array (size=2)
     0 => int 0
     1 => int 1820

//name不同(简单点)
array (size=2)
 'wt' => 
  array (size=5)
   'name' => string '新建文本文档 (2).txt' (length=26)
   'type' => string 'text/plain' (length=10)
   'tmp_name' => string 'C:\Windows\php39C7.tmp' (length=22)
   'error' => int 0
   'size' => int 0
 'mmt' => 
  array (size=5)
   'name' => string '新建文本文档.txt' (length=22)
   'type' => string 'text/plain' (length=10)
   'tmp_name' => string 'C:\Windows\php39D8.tmp' (length=22)
   'error' => int 0
   'size' => int 1820

필드 오류 목적

값: 1 업로드된 파일이 다음을 초과합니다. php.ini의 upload_max_filesize 옵션에 의해 값이 제한됩니다.

값: 2 업로드된 파일의 크기가 HTML 형식의 MAX_FILE_SIZE 옵션에 지정된 값을 초과합니다.

값: 3 파일의 일부만 업로드되었습니다.

값: 4 업로드된 파일이 없습니다. 값: 5 업로드된 파일의 크기는 0입니다.

관련 권장 사항:

PHP 파일 업로드 클래스 Sharing_php 예제

PHP가 다중 파일 업로드를 구현하는 방법

PHP 구현을 설명하는 예제 공통 파일 업로드 수업

위 내용은 PHP 단일 파일 및 다중 파일 업로드 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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