Technical support2007/11/27 09:51
views: 1475 times
超大字體(180%)放大字體(130%)原始字體(100%)
這個類別是用來做上傳,下載檔案用的類別。此處需要 mysql.class.phpm 這個類別檔案,當然,如果要將這一個類中的所有的資料庫操作都改成自己想要的方式也無妨,就端看個人方便為主。

主要功能有兩種,一種是上傳檔案,一種是下載檔案。預設允許上傳的檔案格式為:'gif','bmp','jpg','jpe','jpeg','png','zip','pdf','rar','xls','doc','txt','htm','html','ppt','csv',預設上傳路徑是 '/usr/local/www/database/attachments/',這兩個地方請自行修改。當然,他還有一個 public 的 Array,叫做 ExtensionFileFormat,你可以由外部添加幾組檔案格式進來。

附帶一提,這個上傳下載的類可以製作圖型縮圖,是使用 ImageMagick 這個工具。個人不太推薦使用 PHP 的 GD-library。在效能上來說,我覺得 IM 比較好一點。

這個類在呼叫時,需要傳入兩個值,一個就是 ExtensionFileFormat 的陣列,另一個則是使用者的主鍵 ID 值。他會在上傳路徑中依照使用者的主鍵 ID 來建立個別的使用者目錄,以區隔每一個使用者上傳的檔案。

外部可呼叫的函式如下:
  1. UploadedByFilemanager($fileArray, $maxSize=0, $delOriginal=false, $overWrite=false)
    上傳檔案呼叫此一函式,可以只傳入 $fileArray。它是一個陣列值,也就是將整個 $_FILES 傳進來就可以了。後面分別是:上傳檔案大小(bytes)限制,是否刪除原始上傳檔案,以及是否覆蓋原始上傳檔案。
  2. DownloadByAttachmentID($attachment_id=0)
    下載檔案,以 attachments 資料表中的主鍵 ID 來下載附件。
  3. DownloadByAttachmentName($attachment_name=null)
    下載檔案,以 attachments 資料表中的檔案名稱來下載附件。
  4. setImageThumb($thumb = true, $thumbWidth = 0, $thumbHeight = 0, $thumbprefix = 'thumb_')
    設定縮圖大小。當檔案上傳為圖片檔時,會建立一個縮圖,此縮圖的大小由此一函式設定,前輟字元 'thumb_' 可以自行修改。縮圖的寬度與高度若是不設定(設定為 0),則會依照原始設定(100x100)製作縮圖。
資料庫設定參考:

上傳範例:

下載範例:

創用 CC 授權
Creative Commons License
本創作適用 姓名標示-非商業性-禁止改作 3.0 創用 CC 授權,台灣並依循所適用的授權條款。

Bookmarks  HEMiDEMi  Technorati  Del.icio.us  Digg  funP  Yahoo!  Furl
Writer profile
author image
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。
Posted by hina

Trackback URL : http://hina.ushiisland.net/blog/hinablue/trackback/428

Leave your greetings.

[登入][OpenID是?]