久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發(fā)帖
查看: 1528|回復(fù): 3

Discuz! X3.5 不用插件實(shí)現(xiàn)上傳下載附件大于4G

1

主題

0

回帖

6

積分

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
樓主
發(fā)表于 2024-9-8 09:38:59 | 只看樓主 |只看大圖 |正序?yàn)g覽 |閱讀模式
因最近內(nèi)網(wǎng)服務(wù)器之間下載各種升級(jí)包需要搭建一個(gè)網(wǎng)站或者文件服務(wù)器,上傳要能審核,下載能夠查看記錄,同事開始建議使用SVN、Gitlab等開源倉庫,最后決定用Discuz! X3.5 搭建一個(gè)下載論壇,可以方便的隱藏不需要的菜單、或者其他模塊,發(fā)帖上傳審核、下載記錄使用插件實(shí)現(xiàn)。
配置都已修改正常:
1)用戶組、管理組中附件相關(guān)都已設(shè)成0,即不限制大小。(后面我改成了20971520,即小于20480M)

2)httpd.conf中已增加(表示允許請求20G):LimitRequestBody  21474836480
3)php.ini(獨(dú)立內(nèi)網(wǎng),時(shí)間都設(shè)為了0):
upload_max_filesize = 20480M
memory_limit = 20480M
post_max_size = 20480M

max_input_time = 0
max_execution_time = 0
但是在上傳下載大附件時(shí)遇到了問題:


1、不能上傳大于4G的附件,即使設(shè)成0也一樣,是因?yàn)橄嚓P(guān)數(shù)據(jù)庫表中maxattachsize、filesize是int類型,無符號(hào)int最大在4G的樣子,我用的navicat【右鍵--》設(shè)計(jì)表】,修改以下表,并保存:


1)usergroups_field->maxattachsizemaxsizeperday bigint,長度20。長度只是顯示位數(shù),不影響最大值!
2)attachment相關(guān)表中的filesizemaxsize bigint(20位)
3)forum_attachtype->maxsize bigint(20位)
4)member_count->attachsizetodayattachsize bigint(20位)
5)forum_polloption_image->filesize   【圖片】bigint(20位)
修改后重啟apache,進(jìn)行上傳大于4G附件,可以看到
看起來好像正常了,但是點(diǎn)擊下載下來只有610M(在win10筆記本上測試的),去附件文件夾里看也確實(shí)只有610M,網(wǎng)上找了找沒有找到解決辦法,本來打算放棄采用別的辦法來實(shí)現(xiàn),突然想到我測試過其他版本,一直用的是php7.2,改回X3.5后沒有改回php8.0,配置好php8.0后,測試4.25G、7G,一直到16G上傳都正常
去附件文件夾里看,文件大小也正常了!

但是下載卻遇到了麻煩,win10機(jī)器上下載超過3G大小后,就會(huì)看到下載速度變成0,然后又會(huì)嘗試下載幾次,最終還是會(huì)失敗。win7更慘,超過1G就是失敗。網(wǎng)上找了下資料,說是應(yīng)該內(nèi)存不夠,使用php下載會(huì)將數(shù)據(jù)緩沖到內(nèi)存,只有另謀出路了,解決辦法就是用apache的mod_xsendfile模塊下載,不走php層,我用的apache24,模塊下載地址:https://github.com/nmaier/mod_xsendfile
1)、將mod_xsendfile.so放置到apache安裝目錄下的modules文件夾
2)、配置Apache 配置文件
將以下內(nèi)容添加到httpd.conf中
# 加載 x-sendfile 模塊
LoadModulexsendfile_modulemodules/mod_xsendfile.so

XSendFile on
3)編輯source\module\forum\forum_attachment.php,找到下面這行(317行),然后緊接著在下面添加兩行內(nèi)容,
function getlocalfile($filename, $readmod =2, $range_start = 0, $range_end = 0) {
              header('X-Sendfile:'.$filename);
              exit();
/*     if($readmod == 1 || $readmod == 3 ||$readmod == 4) {
              if($fp = @fopen($filename, 'rb')){
……………………這些都要注釋掉………………………………
       @flush(); @ob_flush();*/
}  注意最后這個(gè)} 要保留
進(jìn)行下載測試,不用緩沖,直接就彈出文件保存框,win7上上傳、下載測試7G,16G均正常!已經(jīng)可以滿足上傳下載各種大包的需求,更大的就沒在測試了。希望對(duì)有需要的朋友有幫助!


回復(fù)

使用道具 舉報(bào)

7

主題

137

回帖

198

積分

漸入佳境

貢獻(xiàn)
4 點(diǎn)
金幣
7 個(gè)
地板
發(fā)表于 2024-9-29 13:03:38 來自手機(jī) | 只看Ta
也無需改代碼支持無限大文件下載
回復(fù)

使用道具 舉報(bào)

7

主題

137

回帖

198

積分

漸入佳境

貢獻(xiàn)
4 點(diǎn)
金幣
7 個(gè)
板凳
發(fā)表于 2024-9-29 12:48:40 來自手機(jī) | 只看Ta
https://addon.dismall.com/plugins/pn_ftp_c2s.html
這個(gè)方案更好,不用把上傳內(nèi)存設(shè)置加大,更省資源,支持無限大文件
回復(fù)

使用道具 舉報(bào)

11

主題

54

回帖

89

積分

漸入佳境

貢獻(xiàn)
2 點(diǎn)
金幣
5 個(gè)
沙發(fā)
發(fā)表于 2024-9-9 21:46:49 來自手機(jī) | 只看Ta
牛,雖然看不懂。但是感覺很厲害????
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2025-9-19 19:55 , Processed in 0.108040 second(s), 35 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表