修改PHP上傳文件大小限制的方法

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),富順網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:富順等地區(qū)。富順做網(wǎng)站價(jià)格咨詢:18980820575
1. 一般的文件上傳,除非文件很小.就像一個(gè)5M的文件,很可能要超過一分鐘才能上傳完.
但在php中,默認(rèn)的該頁最久執(zhí)行時(shí)間為 30 秒.就是說超過30秒,該腳本就停止執(zhí)行.
這就導(dǎo)致出現(xiàn) 無法打開網(wǎng)頁的情況.這時(shí)我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認(rèn)是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改 post_max_size 設(shè)定 POST 數(shù)據(jù)所允許的最大大小。此設(shè)定也影響到文件上傳。
php默認(rèn)的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會(huì)為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會(huì)改了第二步.但上傳文件時(shí)最大仍然為 8M.
為什么呢.我們還要改一個(gè)參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認(rèn)為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.
各種web開發(fā)語言中,各個(gè)頁面之間基本都會(huì)進(jìn)行數(shù)據(jù)的傳遞,web開發(fā)里面比較常用的數(shù)據(jù)傳遞方式有g(shù)et
post,一直以來我都只知道get傳遞的數(shù)據(jù)量要比post傳遞的數(shù)據(jù)量要少,所以傳遞大數(shù)據(jù)量還是要用post,但是 get post
這兩種方式最大能傳遞多少數(shù)據(jù)呢?一直沒搞清楚。
今天由于工作的需要,還必須得把這個(gè)問題搞明白一下了,下面就說說GET與POST傳遞數(shù)據(jù)的最大長度能夠達(dá)到多少吧。
get
是通過URL提交數(shù)據(jù),因此GET可提交的數(shù)據(jù)量就跟URL所能達(dá)到的最大長度有直接關(guān)系。很多文章都說GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),而
實(shí)際上,URL不存在參數(shù)上限的問題,HTTP協(xié)議規(guī)范也沒有對(duì)URL長度進(jìn)行限制。這個(gè)限制是特定的瀏覽器及服務(wù)器對(duì)它的限制。IE對(duì)URL長度的限制
是2083字節(jié)(2K+35字節(jié))。對(duì)于其他瀏覽器,如FireFox,Netscape等,則沒有長度限制,這個(gè)時(shí)候其限制取決于服務(wù)器的操作系統(tǒng)。即
如果url太長,服務(wù)器可能會(huì)因?yàn)榘踩矫娴脑O(shè)置從而拒絕請(qǐng)求或者發(fā)生不完整的數(shù)據(jù)請(qǐng)求。
post
理論上講是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進(jìn)行大小限制,但實(shí)際上post所能傳遞的數(shù)據(jù)量大小取決于服務(wù)器的設(shè)置和內(nèi)存大小。因?yàn)槲覀円话?/p>
post的數(shù)據(jù)量很少超過MB的,所以我們很少能感覺的到post的數(shù)據(jù)量限制,但實(shí)際中如果你上傳文件的過程中可能會(huì)發(fā)現(xiàn)這樣一個(gè)問題,即上傳個(gè)頭比較
大的文件到服務(wù)器時(shí)候,可能上傳不上去,以php語言來說,查原因的時(shí)候你也許會(huì)看到有說PHP上傳文件涉及到的參數(shù)PHP默認(rèn)的上傳有限定,一般這個(gè)值是2MB,更改這個(gè)值需要更改php.conf的post_max_size這個(gè)值。這就很明白的說明了這個(gè)問題了。
//采集的信息需要先登錄的就要先模擬登錄
//設(shè)置cookie保存路徑
$ch?=?curl_init();
//組裝用戶名和密碼
$info['username']?=?$this-username;
$info['password']?=?$this-pwd;
//模擬表單提交
$params[CURLOPT_URL]?=?$this-url;????//請(qǐng)求url地址
$params[CURLOPT_HEADER]?=?true;?//是否返回響應(yīng)頭信息
$params[CURLOPT_RETURNTRANSFER]?=?true;?//是否將結(jié)果返回
$params[CURLOPT_FOLLOWLOCATION]?=?true;?//是否重定向
//?$params[CURLOPT_SSL_VERIFYPEER]?=?true;?//?https請(qǐng)求?不驗(yàn)證證書和hosts
//?$params[CURLOPT_SSL_VERIFYHOST]?=?true;?//?https請(qǐng)求?不驗(yàn)證證書和hosts
$params[CURLOPT_USERAGENT]?=?'Mozilla/5.0?(Windows?NT?5.1;?rv:9.0.1)?Gecko/20100101?Firefox/9.0.1';
$postfields?=?'';
//將表單要提交的數(shù)據(jù)編程URL拼接方式
foreach?($info?as?$key?=?$value){
$postfields?.=?urlencode($key)?.?'='?.?urlencode($value)?.?'';
}
$params[CURLOPT_POST]?=?true;
$params[CURLOPT_POSTFIELDS]?=?$postfields;
//判斷是否有cookie,有的話直接使用
/*
if?(isset($_COOKIE['cookie_jar'])($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){
$params[CURLOPT_COOKIEFILE]?=?$_COOKIE['cookie_jar'];?//這里判斷cookie
}else{
$cookie_jar?=?tempnam($this-cookie_path,?'cookie');?//產(chǎn)生一個(gè)cookie文件
$params[CURLOPT_COOKIEJAR]?=?$cookie_jar;?//寫入cookie信息
setcookie('cookie_jar',?$cookie_jar);?//保存cookie路徑
}
*/
curl_setopt_array($ch,?$params);?//傳入curl參數(shù)
$content?=?curl_exec($ch);?//執(zhí)行
在使用PhpMyAdmin的時(shí)候經(jīng)常用到數(shù)據(jù)的導(dǎo)入和導(dǎo)出(Export/Import),但是在導(dǎo)入大數(shù)據(jù)的時(shí)候由于php上傳文件的限制和腳本響應(yīng)時(shí)間的限制,導(dǎo)致phpMyAdmin無法導(dǎo)入大數(shù)據(jù)。很多時(shí)候都是由于文件過大,從本地瀏覽上傳導(dǎo)入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個(gè)參數(shù)就是設(shè)定導(dǎo)入文件存放的目錄,這里把值設(shè)定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導(dǎo)入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導(dǎo)入的數(shù)據(jù),點(diǎn)擊導(dǎo)航條上面的“導(dǎo)入”按鈕,
選中“從網(wǎng)站服務(wù)器上傳文件夾ImportSQLFile/中選擇:”選項(xiàng),并需要導(dǎo)入的數(shù)據(jù)文件,
最后點(diǎn)擊“執(zhí)行”,即可導(dǎo)入成功。
注意事項(xiàng)
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
分享標(biāo)題:php超大數(shù)據(jù)傳輸 php 大數(shù)據(jù)
轉(zhuǎn)載源于:http://www.chinadenli.net/article42/dopjjec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、用戶體驗(yàn)、ChatGPT、微信公眾號(hào)、網(wǎng)站制作、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)