TShopping

 找回密碼
 註冊
搜索
查看: 1729|回復: 0
打印 上一主題 下一主題

[教學] Discuz!論壇附件超過2MB的解決方案

[複製鏈接]
跳轉到指定樓層
1#
發表於 2011-8-13 19:24:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
我們知道一般的論壇中在上傳附件時都會有大小限制,Discuz! 論壇也不例外,我們在上傳附件時,會限制在2MB以內。其實PHP默認的上傳限定是最大2M,想上傳超過此設定的文件,需要調整PHP、apache等的一些參數. 下面,我們簡要介紹一下PHP文件上傳涉及到的一些參數:
file_uploads
是否允許通過HTTP上傳文件的開關,默認為ON即是開
upload_tmp_dir
upload_tmp_dir用來說明PHP上傳的文件放置的臨時目錄,要想上傳文件,得保證服務器沒有關閉臨時文件和有對文件夾的寫權限,如果未指定則PHP使用系統默認值
upload_max_filesize
允許上傳文件大小的最大值,默認為2M
post_max_size
控制在採用POST方法進行一次表單提交中PHP所能夠接收的最大數據量。如果希望使用PHP文件上傳功能,則需要將此值改為比upload_max_filesize要大
max_input_time
以秒為單位對通過POST、GET以及PUT方式接收數據時間進行限制。如果應用程序所運行環境處在低速鏈路上,則需要增加此值以適應接收數據所需的更多時間
memory_limit
為了避免正在運行的腳本大量使用系統可用內存,PHP允許定義內存使用限額。通過memory_limit變量來指定單個腳本程序可以使用的最大內存容量變量memory_limit的值應當適當大於post_max_size的值
max_execution_time
max_execution_time設置了在強制終止腳本前PHP等待腳本執行完畢的時間,此時間以秒計算。當腳本進入了一個無限循環狀態時此變量非常有用。然而,當存在一個需要很長時間完成的合法活動時(例如上傳大型文件),這項功能也會導致操作失敗。在這樣的情況下必須考慮將此變量值增加,以避免PHP在腳本正在執行某些重要過程的時候將腳本關閉
對於linux主機,可能在/etc/httpd/conf.d/access.conf/下面裡面還有php.conf 文件,這個文件可能會解決一些系統的文件大小限制問題
利用discuz實現PHP大文件上傳應用舉例
論壇的附件功能當初設計的初衷並不是為了文件管理,由於服務器配置,php,網絡等多方面因素,使得通過論壇上傳文件並不是一個好方案。
對於確實需要改善論壇附件上傳條件的朋友可以嘗試將上面提及的參數在php.ini進行設置,以適應大文件上傳的需要。同時別忘記在論壇的後台相應做附件限制的地方進行設置。
論壇主要有2個地方可以對附件上傳的大小進行限制,級別從高到低依次為:
帖子相關---附件類型尺寸
用戶組---附件相關
同時,下面提供一個配置指導,來源一些成功通過http上傳大附件的朋友的提供,當然,由於大家的服務器配置情況以及網絡情況不同,並不一定適用你的情況,可能很多地方需要參照修改:
打開php.ini,
參數 設置 說明
file_uploads on 是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir -- 文件上傳至服務器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize 8m 望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size 8m 指通過表單POST給PHP的所能接收的最大值,包括表單裡的所有值。默認為8M
說明
一般地,設置好上述四個參數後,在網絡正常的情況下,上傳<=8M的文件是不成問題
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網絡真有100M/S的上傳高速,否則你還得繼續設置下面的參數。
max_execution_time 600 每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time 600 每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit 8m 每個PHP頁面所吃掉的最大內存,默認8M
把上述參數修改後,在網絡所允許的正常情況下,就可以上傳大體積文件了
服務器中修改php.ini文件:
查找max_execution_time = 30,更改為max_execution_time = 600
查找max_input_time = 60,更改為max_input_time = 600
查找memory_limit = 8M ,更改為memory_limit = 20M
查找display_errors = On,更改為display_errors = Off
查找register_globals = Off,更改為register_globals = On
查找post_max_size = 8M,更改為post_max_size = 20M
查找upload_max_filesize = 2M,更改為upload_max_filesize = 20M

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-29 01:57 , Processed in 0.054856 second(s), 18 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表