asp.net支持多文件上傳的服務器控件


  在B/S項目中“文件上傳”是一個比較常用的功能,也有很多實現的方式,個人比較喜歡用第三方的上傳組件uploadify,因為它功能比較強大,配置也比較靈活(多文件、上傳進度顯示、文件類型、文件大小、文件數量、選擇按鈕樣式設置、上傳過程的種種控制、各種事件響應等)。

以前的使用方式:

1、注冊需要的javascript、CSS

2、用javascript進行配置

3、后台處理程序進行上傳處理

 

我是個懶人,覺得這樣太麻煩,就將它進行了asp.net服務器控件的封裝。

現在的使用方式:

不再需要在項目中添加JS、CSS、圖片、flash等文件,也不用進行javascript配置,也不用寫后台處理程序,只需要直接使用控件即可。

1、引入Uploadify_Simple_ASPNET.dll

2、在頁面中注冊並使用

View Code
1 <%@ Register Assembly="Uploadify_Simple_ASPNET" Namespace="Uploadify_Simple_ASPNET"
2     TagPrefix="cc1" %>
3 
4 <cc1:UploadifyControl ID="UploadifyControl1" runat="server" Auto="false" ButtonImage="image.png" ButtonText="瀏覽" Height="30" Width="80" 
5             FileSizeLimit=0 FileTypeExts="*.gif; *.jpg; *.png; *.bmp" FileTypeDesc="圖片">
6         </cc1:UploadifyControl>

 

3、在web.config配置httpHandlers

View Code
<!--必須增加下面的httpHandler-->
    <httpHandlers>
      <add verb="POST,GET" path="Uploadify_Simple_ASPNET/*.ashx" type="Uploadify_Simple_ASPNET.uploadHandler"/>
    </httpHandlers>

 

控件屬性:

SWF:SWF核心文件路徑(一般不需要設置)

ButtonText:瀏覽按鈕上顯示的文字

ButtonImage:瀏覽按鈕圖片路徑

Width:瀏覽按鈕寬度(單位為像素)

Height:瀏覽按鈕高度(單位為像素)

FormData:表單數據

QueueSizeLimit:隊列最多可上傳文件數量

UploadLimit:一次上傳文件的數量

Auto:選擇文件后是否自動上傳

Multi:是否為多選

RemoveCompleted:是否完成后移除序列

FileSizeLimit:單個文件大小最大值,0為無限制(單位為MB)

FileTypeDesc:文件描述

FileTypeExts:上傳的文件后綴過濾器(例:*.gif; *.jpg; *.png; *.bmp)

 

控件方法:

使用方式:給需要使用該方法的按鈕添加onclick屬性,屬性值為“控件.方法名()”

View Code
 1             <input type="button" class="shortbutton" id="btnUpload" value="上傳" runat="server" />
 2             &nbsp;&nbsp;&nbsp;&nbsp;
 3             <input type="button" class="shortbutton" id="btnCancelUpload" value="取消" runat="server" />
 4             &nbsp;&nbsp;&nbsp;&nbsp;
 5             <input type="button" class="shortbutton" id="btnCancelFirst" value="取消第一個" runat="server" />
 6             &nbsp;&nbsp;&nbsp;&nbsp;
 7             <input type="button" class="shortbutton" id="btnStop" value="停止上傳" runat="server" />
 8 
 9 
10 
11         //上傳全部
12         btnUpload.Attributes.Add("onclick", UploadifyControl1.Upload());
13         //取消全部
14         btnCancelUpload.Attributes.Add("onclick", UploadifyControl1.Cancel());
15         //取消第一個
16         btnCancelFirst.Attributes.Add("onclick", UploadifyControl1.CancelFirst());
17         //停止上傳
18         btnStop.Attributes.Add("onclick", UploadifyControl1.Stop());

 

Upload():上傳全部

Cancel():取消全部

CancelFirst():取消第一個

Stop():停止上傳

 

控件事件:

使用方式:訂閱控件的上傳事件(目前上傳事件是靜態的)

View Code
 1         //訂閱文件上傳事件(目前UploadEvent事件是靜態的)
 2         UploadifyControl.UploadEvent += (HttpPostedFile file) =>
 3             {
 4                 //上傳操作業務處理   開始
 5                 string uploadPath = HttpContext.Current.Server.MapPath("~\\uploadFiles\\");
 6                 if (!Directory.Exists(uploadPath))
 7                 {
 8                     Directory.CreateDirectory(uploadPath);
 9                 }
10                 file.SaveAs(uploadPath + file.FileName);
11                 //上傳操作業務處理   結束
12             };

 

UploadEvent:文件上傳事件

 

下面是控件的源碼以及示例程序(小弟菜鳥一枚,如有不妥之處,還望各位大牛、大神指教,我會盡力完善)

 控件源碼及示例

 

這個控件只是對uploadify常用功能的封裝,有些屬性方法並沒有封裝在內。如果你覺得你需要使用uploadify的某些屬性或方法,但控件中沒有,你可以:

1、  留言給我或給我發郵件(qinjiadong369@163.com),我會盡力完善

2、  直接使用uploadify

3、  下載我的控件源碼,自己進行完善。

當然我更希望你告訴我你的需求,這樣能讓這個控件更好一些,讓更多的人方便。

參考:

http://www.uploadify.com/

http://www.cnblogs.com/wuhuacong/archive/2012/12/01/2797679.html

 

如果你覺得文章對你有幫助,可以點擊旁邊的“推薦”按鈕,這樣會讓更多需要的人有機會看到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM