檔案上傳,springmvc檔案上傳_PHP教程

來源:互聯網
上載者:User

檔案上傳,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

樣本:

    

 

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;

            }

http://www.bkjia.com/PHPjc/1116661.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1116661.htmlTechArticle檔案上傳,springmvc檔案上傳 檔案上傳     檔案上傳就是將用戶端的檔案上傳到伺服器端(並不是簡單的copy) 檔案上傳需要兩部分:用戶端...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.