PHP特點之文件上傳3——常見缺陷
對?MAX_FILE_SIZE?設置的值,不能大于 ini 設置中?upload_max_filesize?選項設置的值。其默認值為 2M 字節。
如果內存限制設置被激活,可能需要將?memory_limit?設置的更大些,請確認?memory_limit?的設置足夠的大。
如果?max_execution_time?設置的值太小,腳本運行的時間可能會超過該設置。因此,也請保證?max_execution_time?足夠的大。
Note:?max_execution_time?僅僅只影響腳本本身運行的時間。任何其它花費在腳本運行之外的時間,諸如用函數?system()?對系統的調用、?sleep()?函數的使用、數據庫查詢、文件上傳等,在計算腳本運行的最大時間時都不包括在內。
Warning:max_input_time?以秒為單位設定了腳本接收輸入的最大時間,包括文件上傳。對于較大或多個文件,或者用戶的網速較慢時,可能會超過默認的60 秒。如果?post_max_size?設置的值太小,則較大的文件會無法被上傳。因此,請保證?post_max_size?的值足夠的大。
不對正在操作的文件進行驗證可能意味著用戶能夠訪問其它目錄下的敏感信息。
請注意?CERN httpd?似乎會丟棄它從客戶端獲得的 content-type mime 頭信息中第一個空格后所有的內容,基于這一點,CERN httpd?不支持文件上傳特性。
鑒于文件路徑的表示方法有很多種,我們無法確保用使用各種外語的文件名(尤其是包含空格的)能夠被正確的處理。
開發人員不應將普通的輸入字段和文件上傳的字段混用同一個表單變量(例如都用?foo[])。
相關文章: