>  기사  >  백엔드 개발  >  PHP 단일 파일 및 다중 파일 업로드 예제 설명

PHP 단일 파일 및 다중 파일 업로드 예제 설명

jacklove
jacklove원래의
2018-07-05 18:02:581650검색

이 글은 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 / error单文件还是多文件上传,都会有5个固定属性:name / size / type / tmp_name / error

多文件上传

相比单文件上传,多文件上传处理起来要复杂多了前端的两种多文件上传形式

//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)
 &#39;wt&#39; => 
  array (size=5)
   &#39;name&#39; => 
    array (size=2)
     0 => string &#39;新建文本文档 (2).txt&#39; (length=26)
     1 => string &#39;新建文本文档.txt&#39; (length=22)
   &#39;type&#39; => 
    array (size=2)
     0 => string &#39;text/plain&#39; (length=10)
     1 => string &#39;text/plain&#39; (length=10)
   &#39;tmp_name&#39; => 
    array (size=2)
     0 => string &#39;C:\Windows\php1D64.tmp&#39; (length=22)
     1 => string &#39;C:\Windows\php1D65.tmp&#39; (length=22)
   &#39;error&#39; => 
    array (size=2)
     0 => int 0
     1 => int 0
   &#39;size&#39; => 
    array (size=2)
     0 => int 0
     1 => int 1820

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

백엔드 $_FILES가 다릅니다
rrreee

Field 오류 목적
값: 1 업로드된 파일이 php.ini의 upload_max_filesize 옵션에 의해 제한되는 값을 초과합니다.

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

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

PHP 멀티플레이어 모듈 개발의 원리 분석

🎜🎜🎜🎜XHProf를 사용하여 PHP 성능 병목 현상을 찾는 설명🎜🎜🎜🎜🎜Laravel 프레임워크의 사용자 정의 템플릿 지침 관련 요약🎜 🎜 🎜🎜🎜🎜🎜

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

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