現在位置:首頁 / 關於本站 / Update Something / 線上相簿正式啟用
主題:線上相簿正式啟用
時間:2006-09-07 20:36:01
修改 2 次,瀏覽2063 次

初階版的線上相簿終於寫完了,之所以用初階版來形容,真的是因為很陽春,雖然有點差強人意,但尚可使用,等有時間實在繼續寫吧!簡單的敘述一下撰寫的過程及想法。

首先是檔案上傳的部份,因為檔案在上傳時可能會碰到檔案名稱一樣的問題(如果懶惰一點的話,其實可以先自己編好檔案名稱後在上傳,就部會有這樣的問題,可是這樣太遜了),所以必須先克服檔案名稱相同的問題,常見的方法幾乎是用日期及時間的組合來作控制,例如2006年9月07日20:10:10,則檔案名稱20060907201010.xxx,如此已經將檔案名稱相同的變數縮到1秒鐘,即可有效避免檔案名稱相同的問題,因為上傳檔案時只有筆者一位,所以也可以避免同一秒鐘有二位以上的使用者上傳檔案,如果還要在更有效區隔,也可以加上user id或random出一些數字及英文字可以更有效的避免檔案名稱相同的問題。

第二則是相片歸類(相簿)的問題,最容易的方法即是用一個資料表(table)來作管理,這樣就可以無限擴充,如表二所示。

第三則是相片的呈現方式,縮圖頁面的設計(一覽表),一頁要輸出(post)張比較好呢?其實這並沒有固定的答案,因為筆者認為必須依照伺服器(server)的網路頻寬及clinet端的頻寬而定,所以數量是可以隨意改變。

第四點是檔案上傳時,除將相片上傳至伺服器外,另外還必須將照片資料寫進資料庫,所以上傳時必須要同時完成2道程序;而刪除照片時則又必須將資料庫及伺服器照片刪除,如此才能讓資料庫及伺服器檔案同步,避免垃圾檔的產生。

另外最後一點則是單張照片的瀏覽的畫面,筆者選擇一次瀏覽2張照片的方式設計,而照片大小則設定在300x200像素(所以在上傳相片以前必須先改變相片大小)。

表一:相片資料表(紀錄檔案資訊
Field Type Allow Null Default Value
id int(3) No
photo_label_id int(3) No 0
content tinytext No
user_id int(3) No 0
date datetime No 0000-00-00 00:00:00
ip varchar(16) No
file_kind int(1) No 0
location varchar(60) Yes
hit_time int(3) No 0

表二:相簿名稱的資料表(紀錄相簿種類)

Field Type Allow Null Default Value
id int(3) No
user_id int(11) No 0
make_date datetime No 0000-00-00 00:00:00
name char(30) No
hit_time int(3) No 0



未來要完成的事項:

  1. 上傳時,使用GD功能,將照片大小挑整至筆者想要的大小。
  2. 單張照片瀏覽畫面,希望修改為一大張二小張的畫面。