這篇文章將為大家詳細(xì)講解有關(guān)利用PHP怎么設(shè)置圖片文件的上傳大小,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括定州網(wǎng)站建設(shè)、定州網(wǎng)站制作、定州網(wǎng)頁(yè)制作以及定州網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,定州網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到定州省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!我們簡(jiǎn)要介紹一下PHP文件上傳涉及到的一些參數(shù):
?file_uploads :是否允許通過(guò)HTTP上傳文件的開(kāi)關(guān),默認(rèn)為ON即是開(kāi)。
?upload_tmp_dir :upload_tmp_dir用來(lái)說(shuō)明PHP上傳的文件放置的臨時(shí)目錄,要想上傳文件,得保證服務(wù)器沒(méi)有關(guān)閉臨時(shí)文件和有對(duì)文件夾的寫權(quán)限,如果未指定則PHP使用系統(tǒng)默認(rèn)值。
?upload_max_filesize :允許上傳文件大小的較大值,默認(rèn)為2M。
?post_max_size :控制在采用POST方法進(jìn)行一次表單提交中PHP所能夠接收的較大數(shù)據(jù)量。如果希望使用PHP文件上傳功能,則需要將此值改為比upload_max_filesize要大。
?max_input_time :以秒為單位對(duì)通過(guò)POST、GET以及PUT方式接收數(shù)據(jù)時(shí)間進(jìn)行限制。如果應(yīng)用程序所運(yùn)行環(huán)境處在低速鏈路上,則需要增加此值以適應(yīng)接收數(shù)據(jù)所需的更多時(shí)間。
?memory_limit :為了避免正在運(yùn)行的腳本大量使用系統(tǒng)可用內(nèi)存,PHP允許定義內(nèi)存使用限額。通過(guò)memory_limit變量來(lái)指定單個(gè)腳本程序可以使用的較大內(nèi)存容量變量memory_limit的值應(yīng)當(dāng)適當(dāng)大于post_max_size的值。
?max_execution_time :max_execution_time設(shè)置了在強(qiáng)制終止腳本前PHP等待腳本執(zhí)行完畢的時(shí)間,此時(shí)間以秒計(jì)算。當(dāng)腳本進(jìn)入了一個(gè)無(wú)限循環(huán)狀態(tài)時(shí)此變量非常有用。然而,當(dāng)存在一個(gè)需要很長(zhǎng)時(shí)間完成的合法活動(dòng)時(shí)(例如上傳大型文件),這項(xiàng)功能也會(huì)導(dǎo)致操作失敗。在這樣的情況下必須考慮將此變量值增加,以避免PHP在腳本正在執(zhí)行某些重要過(guò)程的時(shí)候?qū)⒛_本關(guān)閉。
對(duì)于linux主機(jī),可能在/etc/httpd/conf.d/access.conf/下面里面還有php.conf 文件,這個(gè)文件可能會(huì)解決一些系統(tǒng)的文件大小限制問(wèn)題。
在PHP上傳上加入下面的代碼,即可暫時(shí)讓PHP能上傳大文件,如下:
復(fù)制代碼 代碼如下:
<?php
//HTTP上傳文件的開(kāi)關(guān),默認(rèn)為ON即是開(kāi)
ini_set('file_uploads','ON');
//通過(guò)POST、GET以及PUT方式接收數(shù)據(jù)時(shí)間進(jìn)行限制為90秒 默認(rèn)值:60
ini_set('max_input_time','90');
//腳本執(zhí)行時(shí)間就由默認(rèn)的30秒變?yōu)?80秒
ini_set('max_execution_time', '180');
//Post變量由2M修改為8M,此值改為比upload_max_filesize要大
ini_set('post_max_size', '12M');
//上傳文件修改也為8M,和上面這個(gè)有點(diǎn)關(guān)系,大小不等的關(guān)系。
ini_set('upload_max_filesize','10M');
//正在運(yùn)行的腳本大量使用系統(tǒng)可用內(nèi)存,上傳圖片給多點(diǎn),好比post_max_size大1.5倍
ini_set('memory_limit','20M');
?>
查看上面的變量是否修改成功:
復(fù)制代碼 代碼如下:
<?php
echo ini_get('file_uploads')."\n";
echo ini_get('max_input_time')."\n";
echo ini_get('max_execution_time')."\n";
echo ini_get('post_max_size')."\n";
echo ini_get('upload_max_filesize')."\n";
echo ini_get('memory_limit')."\n";
?>
在php.ini中修改,涉及三個(gè)值的大小約束關(guān)系。所以是一種臨時(shí)方案,這個(gè)為何不能修改,是有PHP的運(yùn)行模式是有很大的關(guān)系的,如安全模式。
在安全模式下不能使用ini_set的指令:max_execution_time、memory_limit、child_terminate。
因此,像post_max_size,upload_max_filesize用下面的方法是修改不了的:
復(fù)制代碼 代碼如下:
ini_set('post_max_size','10M');
ini_set('upload_max_filesize','8M');
正確做法是用.htaccess文件:
復(fù)制代碼 代碼如下:
php_value upload_max_filesize 8M
php_value post_max_size 10M
前提是該站點(diǎn)在httpd.conf中配置了:AllowOverride All。
在php文檔里有說(shuō)明upload_max_filesize的可修改范圍是PHP_INI_PERDIR。PHP_INI_PERDIR的意思是域內(nèi)指令可以在php.ini、httpd.conf或.htaccess文件中修改。PHP_INI_SYSTEM 域內(nèi)指令可以在php.ini和httpd.conf文件中修改。所以u(píng)pload_max_filesize用int_set是無(wú)法修改的。只有可修改范圍是PHP_INI_ALL的才可以用int_set修改。
獲取值的方法:
復(fù)制代碼 代碼如下:
if(@ini_get("file_uploads")) {
$arrInfo['fileupload'] = "允許 - 文件 ".ini_get("upload_max_filesize")." - 表單:".ini_get("post_max_size");
}
else {
$arrInfo['fileupload'] = "<font color='red'>禁止</font>";
}
if (get_cfg_var('register_globals')){
$arrInfo['onoff'] ="打開(kāi)";
}else{
$arrInfo['onoff'] = "關(guān)閉";
}
關(guān)于利用PHP怎么設(shè)置圖片文件的上傳大小就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前文章:利用PHP怎么設(shè)置圖片文件的上傳大小-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://m.newbst.com/article24/dcigce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站排名、網(wǎng)站改版、電子商務(wù)、標(biāo)簽優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)