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

返回列表 發帖
查看: 1335|回復: 3

Discuz! X3.5 不用插件實現上傳下載附件大于4G

1

主題

0

回帖

6

積分

初學乍練

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

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

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


1、不能上傳大于4G的附件,即使設成0也一樣,是因為相關數據庫表中maxattachsize、filesize是int類型,無符號int最大在4G的樣子,我用的navicat【右鍵--》設計表】,修改以下表,并保存:


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

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

XSendFile on
3)編輯source\module\forum\forum_attachment.php,找到下面這行(317行),然后緊接著在下面添加兩行內容,
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();*/
}  注意最后這個} 要保留
進行下載測試,不用緩沖,直接就彈出文件保存框,win7上上傳、下載測試7G,16G均正常!已經可以滿足上傳下載各種大包的需求,更大的就沒在測試了。希望對有需要的朋友有幫助!


回復

使用道具 舉報

11

主題

54

回帖

89

積分

漸入佳境

貢獻
2 點
金幣
5 個
沙發
發表于 2024-9-9 21:46:49 來自手機 | 只看Ta
牛,雖然看不懂。但是感覺很厲害????
回復

使用道具 舉報

7

主題

130

回帖

190

積分

漸入佳境

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

使用道具 舉報

7

主題

130

回帖

190

積分

漸入佳境

貢獻
4 點
金幣
7 個
地板
發表于 2024-9-29 13:03:38 來自手機 | 只看Ta
也無需改代碼支持無限大文件下載
回復

使用道具 舉報

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

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-4 21:57 , Processed in 0.056569 second(s), 14 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表