首頁  >  文章  >  後端開發  >  如何透過配置php檔案限制上傳檔案的大小?

如何透過配置php檔案限制上傳檔案的大小?

黄舟
黄舟原創
2017-05-20 16:54:002487瀏覽

如何透過設定php檔案來限制上傳檔案的大小?

在網站開發的過程中,為了確保能夠充分利用伺服器的空間,在開發上傳功能時,必須對上傳檔案的大小進行控制。那我們要如何進行對上傳檔案的大小進行控制呢?

控製檔案的大小可以從兩個面向入手:

第一個是在PHP的設定檔php.ini中對上傳檔案進行控制,如果上傳檔案超過它指定的範圍,那麼執行上傳就會識別。

第二個是在PHP設定檔允許的範圍內,在程式中控制上傳檔案的大小!

一:透過設定檔控制上傳檔案

#PHP中透過php.ini檔案對上傳檔案進行控制,包括是否支援上傳,上傳檔案的暫存檔案目錄,上傳檔案的大小,指令執行時間,指令分配的記憶體空間。

在php.ini中,定義 File Uploads項,完成上傳相關選項的設定。上傳相關選項的含義如下:

file_uploads:如果值是 no,表示伺服器支援上傳文件,如果為off ,那麼則不支援。一般預設是支援的,這個不用修改!

upload_tmp_dri:上傳檔案暫存目錄。在檔案成功上傳之前,檔案首先存放到伺服器端的暫存目錄中。多數使用系統預設目錄,但也可以自行設定!

upload_max_filesize:伺服器允許上傳檔案的最大值,以MB為單位,系統預設為2MB,如果網站需要上傳超過2MB的數據,那麼就要修改這個值!

上述是php.ini中File_Uploads項目中與上述相關參數設定說明,除了File_Uploads項目中的內容外,在php.ini中還有其他幾個選項會影響到檔案的上傳~

max_execution_time:PHP中一個指令所能執行的最大時間,單位為秒。此選項在上傳超大檔案時必須要修改,否則即使上傳檔案在伺服器允許的範圍內,但是若超過了指令所能執行的最大時間,仍然無法實作上傳~

memory_limit: PHP中一個指令所分配的記憶體空間,單位是MB 。它的大小同樣會影響得到超大檔案的上傳!

二:在程式中控制上傳檔案

#在用戶端控制上傳檔案應用的是form 表單中的enctype 和method屬性以及隱藏域MAX_FILE_SIZE。

enctype = “multipart/form-data”:指定表單編碼資料方式。

method = “post”:指定資料的傳輸方式。

透過隱藏網域控制上傳檔案的大小(單位為位元組),該數值不能超過php.ini設定檔中upload_max_filesize 選項設定的值,它不能喝完全控制上傳檔案的大小。只是可以避免一些不必要的麻煩。

技巧:

在套用隱藏域控製檔案上傳大小時,必須將其放置在文件域之前,否則是不能發揮作用的!

以上是如何透過配置php檔案限制上傳檔案的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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