Discuz插件開發-上傳檔案插件

Discuz中有提供上傳檔案的功能,替Discuz使用者帶來了相當大的方便,但使用下來也感到部分的不足夠,在這邊天香公主也有針對上傳檔案這部分開發成了插件,並做分享。



※本人只翻譯成繁體中文,並修正部分文句讓臺灣這邊Discuz站長可以看更清楚,可能在修正文句上並不完美,請見諒。

※本文經過天香老師同意轉載並修正文句,若要再轉載修正文句,請先經過原作者同意,尊重原作者,原作者保留修改及調整權利。

彼岸網提供了讓網友上傳檔案的功能,也讓我(天香公主)寫日誌時帶來了非常大的便利性,但長期使用下來也有一定的功能上不足夠。
1.無法刪除上傳後的檔案、文件
2.網友們上傳的檔案、文件都混再一起,非常不容易找
所以在這邊我(天香公主)自己嘗試寫了一個上傳檔案及管理檔案的插件和網友們分享及討論。

使用插件後,站長們可以設置每個用戶上傳的檔案尺寸大小,默認為200MB,以及允許的檔案擴展名為chm, pdf, zip, rar, tar, gz, bzip2, gif, jpg, jpeg, png, txt, doc, mp3, mp4,還有允許那些用戶組可使用本插件功能。






這個插件啟用之後可以依照路徑plugin.php?id=txgz_file_uploader:files來進入上傳的頁面。
這個路徑可以放在各位站長認為合適的地方讓使用者來使用,舉例在主導航的【幫助】下增加一個子菜單【上傳檔案】來進入這個頁面。

用戶可以上傳的單一檔案大尺寸受到PHP環境三個設置所控制:memory_limit, post_max_size, upload_max_filesize,不能超過其中任何一個(見 超連結 中的討論)。
一般來講都是需要調整post_max_size和upload_max_filesize的值。
在自己服務器上可以在 php.ini 裡調整,在托管的服務器上要按服務商提供的方法設置。
比如在 namecheap.com 裡,在 Software and Services -> Select PHP Version -> Switch To PHP Settings裡設置。
如果使用者上傳的檔案大小,超過這些設定值大小的話會顯示以下訊息:
點擊上傳後的圖標 會將檔案地址拷貝到Clipboard裡,再貼上至需要的地方去。
這個插件包含了兩個模塊。一個'管理中心-列表連結'模塊讓管理員集中管理所有用戶的上傳文件。另一個僅供管理員使用的'頁面嵌入'模塊,它的作用是在網頁上的內容管理菜單上添加一個'管理文件'菜單項,讓管理員能進入管理中心直接管理當前顯示的個人空間用戶的文件。

管理員也可以進入管理中心裡在應用裡點擊本插件下的'文件管理'超連結來集中管理所有用戶上傳的文件:






下方是屬於天香老師補充相關資訊,這邊就不多做修正,保留天香老師的補充說明。
插件下載: http://www.bian-wang.com/discuz/data/userupload/10005/txgz_file_uploader.zip (01/10/2017更新)
※檔案部分,目前是採用彼岸網來源,看後續是否有人需要下載下來觀看,我這邊會再另外找一個空見放看看,但是這個礙於要占用所以目前不考量。 
更新記錄:
05/29/2016: 確保長鏈接能自動換行
05/30/2016: 1)添加插件設置讓站長選擇哪些用戶組的用戶可以使用本插件,2)修補漏洞:當上傳文件名中含 & 時刪除失敗
06/01/2016: 支持同時上傳多個文件
06/02/2016: 解決iPhone上傳同名圖片image.jpg問題
06/04/2016: 加了個管理中心模塊"文件管理",供管理員管理用戶上傳的文件用
06/05/2016: 1)在文件列表頁上添加分頁顯示(每五十個文件一頁),2)在內容管理菜單上添加管理文件菜單項
06/06/2016: 1)遵循PRG模式, 2)設了插件網頁標題,3)一些風格改進
06/07/2016: 1)解決昨天的修改後Mac機器上Safari裡操作後文件列表不實時更新問題, 2)解決iPad上傳同名圖片image.jpeg問題
06/25/2016: 1)支持遠程空間,2)上傳文件夾位置由網站上傳設置決定, 3)在上傳文件夾裡添加空白index.html以避免顯示文件目錄
06/26/2016: 1)在列表裡顯示上傳時間,2)點擊表列標題來按列排序,3)縮短了顯示列表所用時間
11/10/2016: 將文件名排序從區分大小寫改成不區分大小寫
01/10/2017: 不同的FTP服務端軟件提供文件修改時刻的做法有所不同,修改代碼來兼容這個差異



出處:彼岸網
作者:天香公主
翻譯及修改部分文句:HF
原網址:點我

留言

這個網誌中的熱門文章