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