久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

解決php上傳大附件的問(wèn)題--Php、MySQL,、Bugfree

 zybingliu 2010-03-04
部門(mén)bug系統(tǒng)采用bugfree,,由于不能上傳大附件,,需要解決一下,。
1.修改bugfree的配置:
  在bugfree的配置文件中:bugfree目錄的Include中的文件:Config.inc.php中找到
  $_CFG['File']['MaxFileSize'] 這個(gè)參數(shù),設(shè)置到10M
  在bugfree的頁(yè)面中,,已經(jīng)顯示可以上傳10M附件了,但是上傳大文件失?。?br>
2. 解決MySQL的大文件問(wèn)題:
http://dev./doc/refman/5.1/zh/problems.html#packet-too-large  
    http://blog.csdn.net/wangpingpaul/archive/2009/04/15/4075568.aspx

  原來(lái)以為bugfree的所有內(nèi)容都放在MySQL中,,首先從MySQL著手。
  MySQL要設(shè)定最大packet的大?。ㄈ笔?M),設(shè)定方式為:
  在/etc/my.cnf中,,添加: set-variable=max_allowed_packet=16M,重啟MySQL
  進(jìn)入到MySQL,,輸入命令: show variables;
  找到:max_allowed_packet 這一行,,值為:16777216,,生效了。
  但是Bugfree還是無(wú)法上傳2M多的文件
 

3.可能是Php的問(wèn)題:
   按照網(wǎng)上的說(shuō)法,,php的上傳,也有限制大小的問(wèn)題。
   修改php.ini的修改方法修改配置(都是網(wǎng)上抄的,,都差不多),修改/etc/php.ini (系統(tǒng)中只找到這個(gè)php.ini文件,,也是后面錯(cuò)誤的關(guān)鍵)
 (http://www./course/4_webprogram/php/phpjs/20090307/159333.html#
http://www.w3school.com.cn/php/php_file_upload.asp
http://www./html/97/14397-4443.html
 
參數(shù) 設(shè)置 說(shuō)明
file_uploads on 是否允許通過(guò)HTTP上傳文件的開(kāi)關(guān)。默認(rèn)為ON即是開(kāi)
upload_tmp_dir -- 文件上傳至服務(wù)器上存儲(chǔ)臨時(shí)文件的地方,,如果沒(méi)指定就會(huì)用系統(tǒng)默認(rèn)的臨時(shí)文件夾
upload_max_filesize 8m 望文生意,即允許上傳文件大小的最大值,。默認(rèn)為2M
post_max_size 8m 指通過(guò)表單POST給PHP的所能接收的最大值,包括表單里的所有值,。默認(rèn)為8M
說(shuō)明
一般地,設(shè)置好上述四個(gè)參數(shù)后,,在網(wǎng)絡(luò)正常的情況下,上傳<=8M的文件是不成問(wèn)題
但如果要上傳>8M的大體積文件,,只設(shè)置上述四項(xiàng)還一定能行的通。除非你的網(wǎng)絡(luò)真有100M/S的上傳高速,,否則你還得繼續(xù)設(shè)置下面的參數(shù)。
max_execution_time 600 每個(gè)PHP頁(yè)面運(yùn)行的最大時(shí)間值(秒),,默認(rèn)30秒
max_input_time 600 每個(gè)PHP頁(yè)面接收數(shù)據(jù)所需的最大時(shí)間,默認(rèn)60秒
memory_limit 8m 每個(gè)PHP頁(yè)面所吃掉的最大內(nèi)存,,默認(rèn)8M

修改后(上述表格中的8M,在我這里都設(shè)置成20M)  ,重啟apache,,但是還是不行。
把bugfree的源碼也看了半天(php自己從來(lái)么有學(xué)過(guò),,只能現(xiàn)學(xué)現(xiàn)賣),,編寫(xiě)了一些php代碼,,發(fā)現(xiàn)問(wèn)題:
php文件上傳,還有錯(cuò)誤標(biāo)識(shí),,把錯(cuò)誤表示打出來(lái):
  • $_FILES['userfile']['name'] 客戶端機(jī)器文件的原名稱,。
  • $_FILES['userfile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,,例如“image/gif”。
  • $_FILES['userfile']['size'] 已上傳文件的大小,,單位為字節(jié),。
  • $_FILES['userfile']['tmp_name'] 文件被上傳后在服務(wù)端儲(chǔ)存的臨時(shí)文件名,。
  • $_FILES['userfile']['error'] 和該文件上傳相關(guān)的錯(cuò)誤代碼
  1. 值:0; 沒(méi)有錯(cuò)誤發(fā)生,文件上傳成功,。
  2. 值:1; 上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。
  3. 值:2; 上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值,。
  4. 值:3; 文件只有部分被上傳。
  5. 值:4; 沒(méi)有文件被上傳,。

  發(fā)現(xiàn)結(jié)果是1,,說(shuō)明剛才修改的php.ini沒(méi)有發(fā)生效果,??赡艿脑蛴?點(diǎn)
1. 修改錯(cuò)了
2. 根本沒(méi)有讀到這個(gè)php.ini
第二種可能性比較大。

首先排除第一種可能性了,。如何顯示到底讀取那個(gè)php.ini?當(dāng)前php的maxfile配置是多少,?
還好知道有一個(gè)phpinfo,,自己寫(xiě)了一個(gè)php頁(yè)面:非常簡(jiǎn)單就只有: <?php echo phpinfo(); ?>
把php的所有信息都打印出來(lái)。
檢查:果然maxfilesize只有1M,,php.ini讀的也不是/etc下的。
按照phpinfo中顯示的php.ini的目錄位置,,把php.ini文件復(fù)制過(guò)去,,重啟apache,,問(wèn)題解決了。

還有一種方法,,在apache中指定php的配置文件:

在Apache中改變php.ini的路徑的方法如下:

  1. 打開(kāi)httpd.conf,,
  2. 找到 LoadModule php5_module d:/AppServ\php5\php5apache2_2.dll,,在其下面增加多一行代碼:
    PHPIniDir “D:/php5″
    即php.ini所在的文件夾;

保存,,重啟Apache即開(kāi)始生效,。



總結(jié):
  修改php參數(shù)的時(shí)候,花費(fèi)了最多的時(shí)間,。問(wèn)題在于:前2步修改后,,對(duì)修改的效果做了校驗(yàn),,確信修改的參數(shù)發(fā)生了效果,但是最后修改php的時(shí)候,,沒(méi)有做這一步,,浪費(fèi)了大量的時(shí)間,。


 



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多