發(fā)布時(shí)間:2021-09-08 11:02:38來源:轉(zhuǎn)載
PHP是很有技術(shù)含量的。PHP培訓(xùn)屬于IT培訓(xùn)的一個(gè)領(lǐng)域。隨著互聯(lián)網(wǎng)的火爆,PHP也變得異常火爆。在WEB開發(fā)世界里,PHP是較流行的語言之一,需求量也是較大的職業(yè)選擇,多快好省,網(wǎng)站建設(shè)必備利器。那么,為什么上傳大文件總是失敗,但是上傳小文件就沒有問題?
php上傳大文件失敗的原因
第1種情況:文件上傳時(shí)存放文件的臨時(shí)目錄必須是開啟的。
并且是 PHP 進(jìn)程所有者用戶可寫的目錄。
如果未指定則 PHP 使用系統(tǒng)默認(rèn)值。php.ini文件中upload_tmp_dir用來說明PHP上傳的文件放置的臨時(shí)目錄,要想上傳文件,得增加服務(wù)器沒有關(guān)閉臨時(shí)文件并對(duì)該文件夾有寫入的權(quán)限。
第2種情況:max_execution_time 的值必須足夠大。
變量 max_execution_time 設(shè)置了在強(qiáng)制終止腳本前PHP等待腳本執(zhí)行完畢的時(shí)間,此時(shí)間以秒計(jì)算。當(dāng)腳本進(jìn)入了一個(gè)無限循環(huán)狀態(tài)時(shí)此變量非常有用。然而,當(dāng)存在一個(gè)需要很長時(shí)間完成的合法活動(dòng)時(shí)(例如上傳大型文件),這項(xiàng)功能也會(huì)導(dǎo)致操作失敗。在這樣的情況下必須考慮將此變量值增大,以避免PHP在腳本正在執(zhí)行某些重要過程的時(shí)候?qū)⒛_本關(guān)閉,
第3種情況:file_uploads = On 默認(rèn)值為on,
意思是允許通過 HTTP 進(jìn)行文件上傳,此選項(xiàng)不能設(shè)置為OFF。
第4種情況:upload_max_filesize = 2M 設(shè)定文件上傳的大小的較大值
php.ini配置文件中的默認(rèn)文件上傳大小為2M
第5種情況:post_max_size 這個(gè)值也必須足夠大。
這個(gè)變量也是一個(gè)同表單提交相關(guān)的變量,它限制的是客戶端通過POST方法進(jìn)行一次表單提交時(shí)PHP程序所能夠接收的較大數(shù)據(jù)量。一般情況下,將此值的值設(shè)置的比 upload_max_filesize 略大即可,比如要上傳20MB的文件,此值可以設(shè)置為 21MB。
第6種情況:max_input_time 此變量可以以秒為單位對(duì)通過POST、GET以及PUT方式接收數(shù)據(jù)時(shí)間進(jìn)行限制。
如果應(yīng)用程序所運(yùn)行環(huán)境處在網(wǎng)絡(luò)比較慢的情況下,則需要增加此值以增大接收數(shù)據(jù)所需要的時(shí)間,比如將此值設(shè)置為 90秒。
php有哪些優(yōu)點(diǎn)?
開放的源代碼。所有的PHP源代碼事實(shí)上都可以得到。
PHP是免費(fèi)的。和其他技術(shù)相比,PHP本身免費(fèi)且是開源代碼。
跨平臺(tái)性強(qiáng)。由于PHP是運(yùn)行在服務(wù)器的腳本,可以運(yùn)行在UNIX、LINUX、WINDOWS、MAC OS下。
效率高。PHP消耗相當(dāng)少的資源。