﻿# 介紹幾套好用的檔案上傳元件

檔案上傳幾乎每個專案都用的到，但 ASP.NET 2.0 的 FileUpload 控制項有點太陽春了，目前我從網路上找到的 File Upload 元件大多是透過 JavaScript + IFRAME 上傳，或用 JavaScript + Flash 上傳比較好用，今天介紹幾款不錯的。

1.  [SWFUpload](http://www.swfupload.org/ "SWFUpload")  
      
    採用 JavaScript + Flash 進行上傳動作，功能強大、一應俱全，雖然每有 ASP.NET 現成的控制項可用，但是有提供使用 ASP.NET 的範例可以參考，是個值得推薦使用的套件！  
      
    其功能有：  
      
    \- 可一次上傳多個檔案。  
    \- 支援 JavaScript 的 Callback 事件。  
    \- 可在檔案開始上傳前取得部分檔案資訊。  
    \- 可以透過 XHTML 與 CSS 客製化上傳的元件。  
    \- 可得知檔案上傳進度。  
    \- 上傳檔案不需要 PostBack，可以等上傳檔案完成後再 PostBack 出去。  
    \- 只要是 Flash 支援的 Browser 都可以用。  
    \- 就算 Flash 或 JavaScript 都無效的時候，也可以正常上傳。  
    \- 可以在「檔案上傳之前」就先判斷檔案大小，超過限制可以不進行上傳。  
    \- 可以在瀏覽檔案時篩選特定的檔案類型  
    \- 支援上傳檔案佇列功能，可以在還沒上傳檔案之前將新增要上傳的檔案或移除要上傳的檔案。  
      
    
2.  [FancyUpload](https://github.com/digitarald/digitarald-fancyupload "FancyUpload")  
      
    這個套件就像他的名字一樣很花俏(Fancy)，看過他的 [Demo](https://github.com/digitarald/digitarald-fancyupload/tree/master/showcase "FancyUpload DEMO") 就是到他的威力了。  
      
    其功能有：  
      
    \- 可一次上傳多個檔案。  
    \- 可以在瀏覽檔案時篩選特定的檔案類型  
    \- 支援 JavaScript 的 Callback 事件。  
    \- 可在檔案開始上傳前取得部分檔案資訊。  
    \- 可以在「檔案上傳之前」就先判斷檔案大小，超過限制可以不進行上傳，也可限制上傳檔案數的上限。  
    \- 只要是支援 Flash 8 的 Browser 都可以用。  
    \- 支援上傳檔案佇列功能，可以在還沒上傳檔案之前將新增要上傳的檔案或移除要上傳的檔案。  
    \- 所有功能都可以設定，文件  
    \- 可得知檔案上傳進度。  
    \- 上傳檔案不需要 PostBack，可以等上傳檔案完成後再 PostBack 出去。  
    \- 就算 Flash 或 JavaScript 都無效的時候，也可以正常上傳。  
      
    
3.  [AjaxFileUpload](http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ "AjaxFileUpload ( jQuery )")  
      
    這是一個 [jQuery](http://jquery.com/ "jQuery") Plugin，也算是不錯用，只是功能沒像上面兩個那麼多功能，因為這套是用 JavaScript + IFRAME 的技巧實做的。  
      
    如果你想找其他 jQuery Plugins 可以來這裡：[http://plugins.jquery.com/](http://plugins.jquery.com/)
    

**相關網址**

-   [ASP.NET 當上傳檔案過大時任何回應瀏覽器的動作都無效](/post/2008/01/26/When-POST-content-exceed-maxRequestLength-any-HTTP-responses-are-useless "ASP.NET 當上傳檔案過大時任何回應瀏覽器的動作都無效")
