首頁  >  文章  >  後端開發  >  PHP單一檔案與多檔案上傳實例講解

PHP單一檔案與多檔案上傳實例講解

jacklove
jacklove原創
2018-07-05 18:02:581649瀏覽

這篇文章給大家詳細分析了PHP實作單一檔案上傳和多檔案上傳的程式碼以及問題解決方案,一起學習參考下。

$_FILES何時為空數組?

表單提交enctype 不等於multipart/form-data 的時候php.ini設定檔中,file_uploads = Off 上傳的檔案大小> php.ini設定檔中所設定的最大上傳大小時

只要出現$_FILES 為空數組,就可能出現以上的問題,必須修復!

如果未選擇任何檔案就馬上點擊“上傳按鈕”,$_FILES將會是一個有元素的數組,元素中的每個屬性都是空字串,error屬性為4

單一檔案上傳

$_FILES 資料結構

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

無論是單一檔案多重檔案上傳,都會有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

欄位Error用途

值:1 上傳的檔案超過了php.ini 中upload_max_filesize 選項限制的值。 值:2 上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。

值:3 檔案只有部分被上傳。

值:4 沒有檔案被上傳。值:5 上傳檔案大小為0.

PHP多人模組開發的原理解析


#使用XHProf找出PHP效能瓶頸的實例講解

###Laravel框架中自訂範本指令相關總結#####################

以上是PHP單一檔案與多檔案上傳實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn