1. 程式人生 > >【.Net碼農】C#.net檔案批量上傳解決方案附下載(swfupload)2015-8-28更新

【.Net碼農】C#.net檔案批量上傳解決方案附下載(swfupload)2015-8-28更新

因為最近專案需要多檔案同時上傳所以自己在網上找了下方法。swfupload做到了,所以我把我的C#.net環境的多檔案同時上傳共享給大家!(本例項最大隻能上傳500M的資料,如需要上傳更大的下面會告訴大家如何設定)

功能完全支援ie和firefox瀏覽器!

一般的WEB方式檔案上傳只能一個一個的進行上傳,在某些應用上就顯得很不人性化,客戶們都希望能夠1次選擇很多檔案,然後讓系統把選擇的檔案全部上傳。

這裡,就將針對這個問題提出一個比較完美的解決方案,利用的技術主要有2個:Flash和smartupload。Flash能夠讓客戶一次選擇多個檔案,而smartupload負責將選擇的檔案上傳到伺服器上。

有些朋友看到這裡,就知道了,其實就是swfupload方法,具體資訊可以訪問swfupload官方網站:http://www.swfupload.org/

讓我們先來看看客戶端的介面效果圖。(多選檔案,批量上傳,上傳進度顯示)
 



要做到圖中的效果,其實很方便,看完下面的描述,相信大家都想看看效果了。那就下載吧,附件在最下面。

下面把一些基本的方法告訴大家如何使用

首先是Default.aspx是上傳檔案的例項。比較簡單一般都不需要改什麼!下面是一些引數設定

設定檔案上傳的大小隻需要修改Web.config檔案中的maxRequestLength即可512000=1024*500得到的所以你可以設定你想要設定的大小!

C#程式碼 
  1. <httpRuntime executionTimeout="300" maxRequestLength="512000" useFullyQualifiedRedirectUrl="false"
    />  

檔案目錄的選擇設定

找到根目錄裡面的upload.aspx的後臺程式碼upload.aspx.cs

C#程式碼 
  1. string fileName = httpFile.FileName;  
  2. string preStr = "";  
  3. preStr = System.DateTime.Now.ToString() + "_";  
  4. preStr = preStr.Replace("-""");  
  5. preStr = preStr.Replace(":""");  
  6. preStr = preStr.Replace(" """);//preStr是為了改變上傳的檔名稱
      
  7. string uploadPath = Server.MapPath("temp\\") + preStr + fileName;//在這裡取的是相對目錄,有個temp資料夾  
  8. httpFile.SaveAs(uploadPath);//儲存上傳的檔案  
  9. Session["filelist"] += uploadPath + "|";//此方法是為了獲取檔案的實際地址並且記錄下來你可以呼叫此session,  
  10. Response.Write("檔案: " + uploadPath + " 上傳成功!");//成功返回並顯示  

好了大家只要下載我這個附件就可以去修改成你想要的效果了。注一定要在IIS下執行。不然上傳路徑會報錯的哦!(完畢)

(已經更新了IE8不能點選的BUG 2011-08-16 18:22)

(已經更新了報500錯誤的BUG 2015-08-28 10:22)

歡迎下載。