曾經設計和使用網頁功能來上傳檔案的人都知道,傳統的網頁檔案上傳方式非常不友善!
一次只能選擇一個檔案、上傳時沒有進度回報、主機有檔案限定時得上傳完才知道....,真是罄竹難書。
為了滿足近年來大量的檔案上傳需求(相簿、部落格和影音等服務太盛行了嘛),許多的解決方案陸續推出了。包括:
- Windows上傳精靈技術
透過Windows所訂定的通訊流程和介面,將原本逐一上傳的功能轉為和個人電腦的檔案總管(Windows平台限定)結合,讓網友可以快速選取檔案,然後批次上傳。知名的Coppermine相簿系統和天空部落都採用這樣的解決方案。它的優點也就是缺點,因為和檔案總管結合,user可以方便選擇、上傳,但相反的,在上傳時的服務機制就完全失去彈性(也可以說變得很麻煩)。 - 改用application方式設計
不少大型的服務網站採用這種方式,也就是將上傳功能寫成一支獨立的應用程式或整合到其他程式裡面。像是Google 推出的 PICASA 相簿,網友除了用 PICASA 軟體來管理自己的照片外,也可以直接用其中的上傳功能將照片傳到網路相簿裡。這個缺點不用說大家也知道,那就是只有他家的軟體和網站能用。 - 整合 Flash object 的上傳方式
這就是我們要推薦的方式。分析要達到大量上傳的目的,有二個重要因素:一是檔案的選擇要夠方便;二是傳送的狀態要能即時顯示。為了達到第一個要求,必須讓選取檔案的動作跳脫原本的瀏覽器規範(一次一個),所以用 Flash object 來開啟檔案選單。其次,因為 Flash object 在上傳時,會依據他所傳出的封包量來推算上傳狀況,雖然不是以主機實際收到的封包為準,但在網路正常的情況下,二者的代表意義是相同的。
因此,以Flash object上傳的方式是最好的作法。因為 Flash 的普遍性高,在跨作業系統的考量下,比 Windows 上傳精靈更理想;再者,Flash 上傳的程式很簡單、檔案也很小,並不需要像設計AP一樣,搞得很複雜;最後,也是最重要的,它可以讓網頁設計師輕鬆整合到自己的網站裡,與網站流程完全整合在一起。
基於上述的理由,我們強烈建議大家可以玩玩這個免費的上傳模組。然後幫自己的網站加上批次上傳的功能吧~~
模組鏈結:JSMultiUpload-1.0-RC3.zip