如何透過設定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中文網其他相關文章!