當使用者需要將檔案傳輸到伺服器上時,常用方法是使用FTP方式,用FTP的話雖然傳輸穩定,但安全性是個嚴重的問題,而且FTP伺服器讀使用者庫擷取許可權,這樣對於使用者使用來說還是不太方便。如果我們能把檔案上傳功能與Web整合,使使用者僅用Web瀏覽器就能完成上傳任務,這對於他們來說將是非常方便的。
網路上有很多介紹ASP上傳檔案的方法,歸結起來有以下三大類實現方法,讀者可以根據自己網站的條件和需求來選擇合適的方法。
一、伺服器組件上傳方式:
該方法以SA-FileUp組件、AspUpload組件、lyfUpload組件為代表。
Software Artisans的SA-FileUp是最早的商業Active Server組件之一,幾經改進,現在作為一個純粹的ASP組件存在。Persits Software的ASPUpload也是一個功能很強大的COM組件。他們均實現了各種檔案上傳所需要的功能:上傳大檔案、限制上傳檔案的大小、上傳多個檔案、顯示上傳進度條、能夠將檔案儲存到資料庫中、……。
該類方法的優點是運行穩定,功能強大,對瀏覽器沒有任何要求。其缺點就是需要在伺服器上註冊組件。如果網站管理員對伺服器擁有系統管理權限,則該方法應該是實現檔案上傳的首選。
二、無組件上傳方式:
該方法以化境無組件上傳、無懼無組件上傳、先鋒無組件上傳等為代表。
該方法是網路上應用最多最廣的方法,並且有很多應用執行個體的原始碼,其優點是對伺服器和瀏覽器均沒有任何要求,適應性強,應用範圍廣。但它也存在著一個缺點,上傳檔案的時候沒有進度條的顯示,並且IIS預設限制不允許上傳超過200KB的檔案(除非修改IIS的預設設定AspMaxRequestEntityAllowed)。
如果只需要上傳小檔案,則應該是首選方案。如果需要上傳大檔案,則需要網站管理員修改IIS的預設設定AspMaxRequestEntityAllowed。
三、瀏覽器組件上傳方式:
該方法以XUpload組件、XUploadFiles組件、縱橫HTTP檔案上傳組件為代表。
該方法在網路上應用相對要少一些,其優點是對伺服器無要求,不需要在伺服器上安裝組件,並且能提供檔案上傳所需要的各種功能:上傳大檔案、限制上傳檔案的大小、上傳多個檔案、顯示上傳進度條、……。其缺點也比較明顯,需要註冊瀏覽器組件(在用戶端)。該方法適用於需要上傳大檔案,而網站管理員對伺服器沒有系統管理權限的情況(如虛擬機器主機、租用空間等)。
各種上傳方法橫向比較結果:
|
伺服器要求 |
瀏覽器要求 |
上傳檔案限制 |
上傳時有無進度條 |
其他 |
SA-FileUp |
安裝組件 |
- |
支援大檔案,無限制 |
有進度條 |
需要有伺服器控制權 |
AspUpload |
安裝組件 |
- |
支援大檔案,無限制 |
有進度條 |
需要有伺服器控制權 |
lyfUpload |
安裝組件 |
- |
支援大檔案,無限制 |
無 |
需要有伺服器控制權 |
化境無組件上傳 |
- |
- |
與IIS設定相關, IIS預設設定最大200KB |
無 |
通用, 適用小檔案上傳 |
無懼無組件上傳 |
- |
- |
與IIS設定相關, IIS預設設定最大200KB |
無 |
通用, 適用小檔案上傳 |
先鋒無組件上傳 |
- |
- |
與IIS設定相關, IIS預設設定最大200KB |
無 |
通用, 適用小檔案上傳 |
XUploadFiles |
- |
安裝組件 |
支援大檔案,無限制 |
有進度條 |
租用空間, 而需要上傳大檔案 |
縱橫HTTP檔案 上傳組件 |
- |
安裝組件 |
支援大檔案,無限制 |
有進度條 |
租用空間, 而需要上傳大檔案 |