Click here to Skip to main content
Click here to Skip to main content

Multiple File Upload Custom Control in ASP.NET

, 23 Sep 2009 CPOL
Rate this:
Please Sign up or sign in to vote.
There is already a control available in .NET for single upload. There are cases where we actually have requirement of multiple and bulk select upload of files in application so as to achieve this functionality I came up with the solution that will help developer a lot..

Introduction

We have a scenario where we want to have multiple file upload with one click selection criteria. After a long search in Google, I landed up on The Code Project with the desired solution.The solution I got was not straight forward and it took me tooth and nail to fit the solution in my architecture. So I made some changes to the code that helped me to achieve the multiple upload functionality with the expected output.

Using the Code

The steps that need to be followed so as to make this work for you, are as follows:

  1. Copy Upload.cs and Upload2.cs in your app_code.
  2. Reference flash.dll in your website. This will appear in bin folder.
  3. In the page load of your code behind, copy this code:
    protected void Page_Load(object sender, EventArgs e)
        {
            // allows the JavaScript function to do a postback 
            // and call the onClick method 
            // associated with the linkButton LinkButton1. 
            string jscript = "function UploadComplete()
    	{" + ClientScript.GetPostBackEventReference(LinkButton1, "") + "};";       
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), 
    			"FileCompleteUpload", jscript, true); 
        }
  4. Add this tag at the top of the ASPX page where you want your control to display:
    &lt %@ Register Assembly="FlashUpload" Namespace="FlashUpload" 
    	TagPrefix="FlashUpload" %&gt 
  5. Add the below ASPX custom tags inside form tags as follows:
    < FlashUpload:FlashUpload ID="flashUpload" runat="server" UploadPage="Upload2.axd"
    	OnUploadComplete="UploadComplete()" FileTypeDescription="All Files" 
    	FileTypes="*.gif;*.doc; 
    
    *.png; *.jpg; *.jpeg"
    	UploadFileSizeLimit="1800000" TotalUploadSizeLimit="2097152" />
     	< asp:LinkButton ID="LinkButton1" runat="server" 
    	OnClick="LinkButton1_Click" > </ asp:LinkButton >
  6. Add the below given tags under system.web in web.config file:
    <httpHandlers>
    	<remove verb="*" path="*.asmx"/>
    	<add verb="*" path="*.asmx" validate="false" 
    	type="System.Web.Script.Services.ScriptHandlerFactory, 
    	System.Web.Extensions, Version=1.0.61025.0, 
    	Culture=neutral, PublicKeyToken=null"/>
    	<add verb="*" path="*_AppService.axd" validate="false" 
    	type="System.Web.Script.Services.ScriptHandlerFactory, 
    	System.Web.Extensions, Version=1.0.61025.0, 
    	Culture=neutral, PublicKeyToken=null"/>
    	<add verb="GET,HEAD" path="ScriptResource.axd" 
    	type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, 
    	Version=1.0.61025.0, Culture=neutral, 
    	PublicKeyToken=null" validate="false"/>
    	< remove verb="POST,GET" path="Upload.axd"/>
    	< add verb="POST,GET" path="Upload.axd" type="Upload"/>
    	< remove verb="POST,GET" path="Upload2.axd"/>
    	< add verb="POST,GET" path="Upload2.axd" type="Upload"/>
    </httpHandlers>

Specify types of files you require need to be uploaded to web server folder. So we are all set and done. Build your application and run the machine.

Conclusion

The above approach may have some implication on security that may require to give access rights to the folder in webserver where your files are going to be saved. Remember this if in production this functionality goes for a toss.

Reference

The reference article that helped me to achieve this milestone was "Multiple File Upload With Progress Bar Using Flash and ASP.NET". Thanks to the author darick_c.

History

  • 23rd September, 2009: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

santosh poojari
Technical Lead
India India
Whatsup-->Exploring--> MVC/HTML5/Javascript & Virtualization.......!
www.santoshpoojari.blogspot.com

Comments and Discussions

 
QuestionError in loading page [modified] PinmemberMorteza Karimi24-Apr-13 3:09 
QuestionDo you have a version for Production server deployment PinmemberAmarjeetSinghMatharu11-Dec-12 2:53 
Hello Santosh,
Thanks for the article.
AS mentioned in the conclusion this does not work on Production server.
Can we make it work there?
Please reply.
Thanks and Regards.
Amarjeet.
QuestionHttp I/O error PinmemberMember 393135026-Mar-12 21:20 
QuestionError: I/O Error: Error #2038 and HTTP Error: status code 302 PinmemberSardorious10-Feb-12 23:35 
AnswerRe: Error: I/O Error: Error #2038 and HTTP Error: status code 302 Pinmemberelmonalgotas23-Apr-12 21:30 
Generalwidth / height? Pinmemberres_web13-Jul-11 6:51 
Generalerror PinmemberRuXiaoMai21-Apr-11 6:40 
GeneralRe: error Pinmemberres_web13-Jul-11 6:47 
Generalreally good article PinmemberMember 37653578-Jul-10 11:27 
GeneralRe: really good article Pinmembersantosh poojari13-Jul-10 4:37 
Generalhi PinmemberNe7ven10-Jan-10 18:16 
GeneralHi Santhosh, I really appreciate for making it available to all. Pinmembersrirammanoj7-Oct-09 13:59 
GeneralIt's seems like a 'How to' with fixes Pinmembermusacj25-Sep-09 2:08 
GeneralMy vote of 2 PinmemberMember 415315723-Sep-09 23:54 
GeneralMy vote of 1 PinmemberN3G4T1V323-Sep-09 8:16 
GeneralRe: My vote of 1 Pinmembersantosh poojari23-Sep-09 10:46 
GeneralMy vote of 1 PinmemberSeishin#23-Sep-09 3:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.141220.1 | Last Updated 23 Sep 2009
Article Copyright 2009 by santosh poojari
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid