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

PHP單一檔案與多檔案上傳實例_php實例

韦小宝
韦小宝原創
2018-05-15 13:44:051825瀏覽

PHP中的檔案上傳和多檔案上傳對於剛入門的PHP初學者來說好比是場噩夢,這篇文章給大家詳細分析了PHP 實作單一檔案上傳和多檔案上傳的程式碼以及問題解決方案,不了解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檔案上傳的所有內容,希望帶給大家幫助! !

相關推薦:

#完美解決php無法上傳大檔案方法

#實例分析PHP單一檔案與多檔案上傳

一個PHP檔案上傳類別分享_php實例

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

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