PHP特點(diǎn)之文件上傳3——常見缺陷
對(duì)?MAX_FILE_SIZE?設(shè)置的值,不能大于 ini 設(shè)置中?upload_max_filesize?選項(xiàng)設(shè)置的值。其默認(rèn)值為 2M 字節(jié)。
如果內(nèi)存限制設(shè)置被激活,可能需要將?memory_limit?設(shè)置的更大些,請(qǐng)確認(rèn)?memory_limit?的設(shè)置足夠的大。
如果?max_execution_time?設(shè)置的值太小,腳本運(yùn)行的時(shí)間可能會(huì)超過該設(shè)置。因此,也請(qǐng)保證?max_execution_time?足夠的大。
Note:?max_execution_time?僅僅只影響腳本本身運(yùn)行的時(shí)間。任何其它花費(fèi)在腳本運(yùn)行之外的時(shí)間,諸如用函數(shù)?system()?對(duì)系統(tǒng)的調(diào)用、?sleep()?函數(shù)的使用、數(shù)據(jù)庫(kù)查詢、文件上傳等,在計(jì)算腳本運(yùn)行的最大時(shí)間時(shí)都不包括在內(nèi)。
Warning:max_input_time?以秒為單位設(shè)定了腳本接收輸入的最大時(shí)間,包括文件上傳。對(duì)于較大或多個(gè)文件,或者用戶的網(wǎng)速較慢時(shí),可能會(huì)超過默認(rèn)的60 秒。如果?post_max_size?設(shè)置的值太小,則較大的文件會(huì)無法被上傳。因此,請(qǐng)保證?post_max_size?的值足夠的大。
不對(duì)正在操作的文件進(jìn)行驗(yàn)證可能意味著用戶能夠訪問其它目錄下的敏感信息。
請(qǐng)注意?CERN httpd?似乎會(huì)丟棄它從客戶端獲得的 content-type mime 頭信息中第一個(gè)空格后所有的內(nèi)容,基于這一點(diǎn),CERN httpd?不支持文件上傳特性。
鑒于文件路徑的表示方法有很多種,我們無法確保用使用各種外語的文件名(尤其是包含空格的)能夠被正確的處理。
開發(fā)人員不應(yīng)將普通的輸入字段和文件上傳的字段混用同一個(gè)表單變量(例如都用?foo[])。
相關(guān)文章:
1. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Ajax返回值類型與用法實(shí)例分析3. 如何在jsp界面中插入圖片4. 詳解盒子端CSS動(dòng)畫性能提升5. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼6. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)7. asp批量添加修改刪除操作示例代碼8. .NET6打包部署到Windows Service的全過程9. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問題10. css代碼優(yōu)化的12個(gè)技巧
