程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 文件上傳,springmvc文件上傳

文件上傳,springmvc文件上傳

編輯:關於PHP編程

文件上傳,springmvc文件上傳


文件上傳

    文件上傳就是將客戶端的文件上傳到服務器端(並不是簡單的copy)

文件上傳需要兩部分:客戶端、服務器端。

客戶端:

  • 利用form中的file表單元素進行文件上傳
  • 對於get方式只能傳遞文本性的信息,POST可以傳遞二進制數據
  • enctype:主要用於設置數據傳遞的方式
  • 取值:
  • aplication/x-www-url-encoded            (默認)主要用於傳輸文本性的數據。
  • multipart/form-data                用於設置傳多種表單數據(文本數據與二進制數據)    

        

服務器端

  • php.ini中需要開啟文件上傳:file_uploads
  • php.ini中臨時目錄:upload_tmp_dir
  • php.ini中控制上傳文件大的:upload_maxfile_size

    

php文件上傳的設置:

php.ini中有一個

file_uploads

示例:

upload_tmp_dir

用於設置文件上傳的臨時保存的目錄,臨時目錄的特點:當腳本執行結束後,臨時文件會被馬上刪除。

upload_max_filesize

用於設置php對上傳文件大小的限制值

一上最多所能上傳文件的限制

 

 

    由於臨時文件目錄中會有腳本執行結束刪除文件,那麼需在腳本執行結束之前就將上傳的文件,移動另的目錄(專用於存儲文件上傳的目錄)

move_uploaded_file($filename,$target);函數

說明:

    $filename是文件名

    $target是目錄名(用戶自定義的)

    將$filename移動$dirname指定的目錄

 

$_FIELS:主要用於記錄文件上傳的相關信息

封裝文件上傳函數

1、定義函數

2、由於需要根據表單元素的name屬性值,在$_FILES數組中找到臨時文件的完整文件名,還不能對前端的input表單元素的name屬性值 限制死。需要後台通過array_keys動態獲取到input表單元素的name屬性值

示例:

代碼:

第3步:獲取臨時文件名

第4步:獲取文件後綴

第5步:封裝隨機生成文件名函數

第6步:調用生成文件名函數

第7步:移動文件

 

文件上傳錯誤信息

主要保存在$_FILES['name屬性值']['error']

示例:

error的值:

upload_err_ok            0表示沒有錯誤,上傳成功

upload_err_    ini_size        1

upload_err_form_size    2

示例:

    <input type="hidden" name="MAX_FILE_SIZE" value="2000000"/>

 

upload_err_partial        3

upload_err_no_file        4

upload_err_no_tmp_dir    6

upload_err_cant_write    7

示例:

第8步:對錯誤信息判斷

//判斷文件上傳是否成功

            switch($arr[$v]['error']){

                case 0:

                    $arrFiles['filename'][]=$fullname;

                    $arrFiles['code'][]=0;

                    break;

                case 1:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='超過php文件大小限制';

                    break;

                case 2:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='超過form表單文件大小限制';

                    break;

                case 3:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='網絡原因部分上傳';

                    break;

                case 4:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='沒有選擇文件';

                    break;

                case 6:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='沒有臨時目錄';

                    break;

                case 7:

                    $arrFiles['filename'][]=false;

                    $arrFiles['code'][]='目錄沒有寫權限';

                    break;

            }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved