asp.net支援多檔案上傳的伺服器控制項

來源:互聯網
上載者:User

  在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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.