用xheditor上傳文件時,出現(xiàn)一點上傳就卡死沒反應(yīng)的問題,在后臺處理上傳的php文件里打印$_FILES時發(fā)現(xiàn)為空數(shù)組,出現(xiàn)這個問題的原因主要有兩個:表單原因或者php設(shè)置原因:
1,表單類型:
上傳文件的表單編碼類型必須設(shè)置成 enctype="multipart/form-data",因為要傳大數(shù)據(jù),一般提交方式用POST
2,php設(shè)置問題:
php默認(rèn)的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會為空. 解決的方法是:
1. 一般的文件上傳,除非文件很小.就像一個5M的文件,很可能要超過一分鐘才能上傳完. 但在php中,默認(rèn)的該頁最久執(zhí)行時間為 30 秒.就是說超過30秒,該腳本就停止執(zhí)行. 這就導(dǎo)致出現(xiàn) 無法打開網(wǎng)頁的情況.這時我們可以修改 max_execution_time 在php.ini里查找 max_execution_time 默認(rèn)是30秒.改為 max_execution_time = 0(可修改范圍為PHP_INI_ALL) 0表示沒有限制
或者在php文件頭設(shè)置ini_set('max_execution_time',0);
2. 修改 post_max_size 設(shè)定 POST 數(shù)據(jù)所允許的最大大小。此設(shè)定也影響到文件上傳。 查找 post_max_size .改為 post_max_size = 150M(可修改范圍為PHP_INI_PHP_INI_PERDIR)
3. 很多人都會改了第二步.但上傳文件時最大仍然為 8M. 為什么呢.我們還要改一個參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。 查找upload_max_filesize,默認(rèn)為8M改為 upload_max_filesize = 100M(可修改范圍為PHP_INI_PHP_INI_PERDIR)
另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.
常量 | 值 | 含義 |
---|---|---|
PHP_INI_USER | 1 | 配置選項可在用戶的 PHP 腳本或 Windows 注冊表中設(shè)置 |
PHP_INI_PERDIR | 2 | 配置選項可在 php.ini, .htaccess 或 httpd.conf 中設(shè)置 |
PHP_INI_SYSTEM | 4 | 配置選項可在 php.ini or httpd.conf 中設(shè)置 |
PHP_INI_ALL | 7 | 配置選項可在各處設(shè)置 |