PHP實現文件上傳和下載(單文件上傳、多文件上傳、多個單文件上傳)(面向對象、面向過程)


  今天我們來學習用PHP進行文件的上傳和下載,並且用面向過程和面向對象的方式對文件上傳進行一個限制

 

一、簡單的上傳測試

1、客戶端:upload.php

 

2、后端:doAction.php

 

結果:

 

 

二、文件上傳配置解析

1、服務器端配置(在php.ini中)

file_upload = On        on表示打開支持HTTP上傳,off表示關閉

upload_tmp_dir =            表示圖片保存的位置

upload_max_filesize  =      允許上傳文件的最大值(默認2M)

max_file_upload =        允許一次上傳的最大文件數(默認20)

post_max_size =         POST方式發送數據的最大值(默認8M)

 

2、錯誤信息說明(error)無5號錯誤號

1、upload_err_OK = 0      表示文件上傳成功

2、upload_err_ini_size = 1    表示上傳文件超過了在PHP.INI中upload_max_file_size選項的限制值

3、upload_err_form_size = 2   表示上傳文件超過了max_file_size選定值

4、upload_err_partial = 3     表示只有部分上傳

5、upload_err_no_file = 4    表示沒有文件被上傳

6、upload_err_no_tmp_dir = 6  表示找不到臨時文件夾

7、upload_err_cant_weitr = 7   表示文件寫入失敗

8、upload_err_extension  = 8  表示上傳的文件被PHP擴展程序中斷

 

 

三、對上傳文件進行一些限制

1、限制內容:

(1)限制上傳文件的大小

(2)限制上傳文件的類型

(3)檢測是否為真實圖片(即真實是txt文本文件,用戶故意把后綴名改成圖片文件)

(4)檢測是否是HTTP POST方式上傳的

 

 

2、客戶端:upload1.php

 

3、服務器端:doAction1.php

 

 

相關函數解析:

 

 

 

 

 

 

 

 

4、測試結果

(1)上傳一張圖片

 

(2)上傳一個文本文件

 

 

 四、將上傳功能封裝成單文件的上傳函數

1、前端:upload2.php

 

 

2、上傳功能函數定義:upload.func.php

 

 

3、服務器端:doAction2.php  加測試結果

 

結果

 

 

結果

 

 

效果

 

五、多文件上傳的封裝函數(針對單文件、多個單文件、多文件上傳)

  首先,我們再進行上傳多個文件的時候,那我們上傳的結果會變得跟上面的不一樣了,例如:

輸出的結果為

 

 

那么我們可以看到,輸出的結果是個三維數組,那么我們再進行對函數封裝的時候呢,需要把三維數組轉換為二維數組,這樣的話,實用度會更強哦!

 

1、前端:upload3.php

 

 

2、上傳文件的函數封裝

 

 

 

3、服務器端:doAction3.php

 

4、測試:

 

結果

 

 

 

6、用面向對象來實現對單文件上傳

1、前端:upload4.php

 

 

2、類文件:upload.class.php

 

3、服務器端:doAction4.php

 

5、測試

(1)

 

 

(2)

 

 

 (3)

 

(4)

 

7、下載功能

  准備工作:先創建一個文件夾,把客戶端和服務器端,還有要下載的圖片放進此文件夾中

1、前端:download.php

 

2、后端:doDownload.php

 

3、效果

 

 小解釋:

 

 

好了,這就是今天的全部內容啦,你學會了嗎!!!!加油

                                                    END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM