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

ASP.NET Server Side Handler for HTML5 Valums Ajax file Upload

By , 27 May 2011
 

Introduction

This Ajax uploader uses XHR for uploading multiple files with progress-bar in FF3.6+, Safari4+, Chrome and falls back to hidden iframe based upload in other browsers, providing good user experience everywhere. You can also see PHP demo in Valums site at http://valums.com/ajax-upload/.

AjaxUpload.JPG

Background

The current implementation has server side handler for Java, PHP and Perl. But ASP.NET handler does not exist. Here, I have implemented an ASP.NET handler for Ajax file upload that supports Internet Explorer, Firefox and Chrome. 

Using the Code

The problem is that Internet Explorer uses context.Request.Files[] for sending file to server. But Firefox and Chrome use Context.Request.InputStream. So in handler, you need to check both for reading stream.

For Firefox and Chrome, you get fileName from header like:

String filename = HttpContext.Current.Request.Headers["X-File-Name"];

Code that works in Firefox and Chrome is as follows:

//This works for Firefox and Chrome.
Stream inputStream = 
HttpContext.Current.Request.InputStream;<br />FileStream fileStream = new 
FileStream(mapPath + "\\" + filename, 
FileMode.OpenOrCreate);inputStream.CopyTo(fileStream);fileStream.Close();

context.Response.Write("{success:true, name:\"" + filename + "\", path:\"" + 
path + "/" + filename + "\"}");

But for Internet Explorer, you need to use:

HttpPostedFile uploadedfile = context.Request.Files[0];

Code that works for Internet Explorer browser is:

HttpPostedFile uploadedfile = context.Request.Files[0];
 filename = uploadedfile.FileName;
uploadedfile.SaveAs(mapPath + "\\" + filename);
 context.Response.Write("{success:true, name:\"" + filename + "\", path:\"" + 
path + "/" + filename + "\"}");

Here the response is sent as JSON string and you will get JSON object as response. You need to send {success:true} to make Ajax upload understand that file upload is successful, otherwise you can send false

History

  • 27th May, 2011: Initial post

License

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

About the Author

Syed BASHAR
Software Developer
Bangladesh Bangladesh
Member
Name SYED MD. ABUL BASHAR
Email ID: miltoncse00@gmail.com
 
I am now working as software engineer in Malaysia. I am from Bangladesh and I have completed my B.Sc (Engg.) in CSE from Rajshahi University of Engineering and Technology (RUET).I spend much time in learning latest technology.
 
My LinkedIn Profile : http://bd.linkedin.com/in/miltoncse00[^]
 
My blog :http://ciintelligence.blogspot.com/[^]

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionIE CrashesmemberFarnaz_Farnaz18 Apr '13 - 5:33 
QuestionIs it possible to select mutiple files at the same time [modified]memberTravelthrprog9 Apr '13 - 4:32 
Questionit runs differently in IE9memberMember 33679062 Apr '13 - 20:52 
Questionnice onememberMember 382310126 Oct '12 - 21:19 
Questionupload successfully but....memberAlenty18 Oct '12 - 2:22 
GeneralMy vote of 5memberNoName_ark10 May '12 - 8:04 
BugFix for IE - invalid pathmemberMember 86106163 May '12 - 3:47 
Questioni con't run the projectmembersenthilkumarpsk8 Mar '12 - 2:25 
AnswerRe: i can't run the projectmemberpimpers14 Sep '12 - 2:47 
GeneralMy vote of 5memberMember 332085211 Feb '12 - 5:43 
QuestionI can't get the filename [modified]memberLamJason14 Dec '11 - 3:57 
AnswerRe: I can't get the filenamememberSyed BASHAR14 Dec '11 - 6:28 
GeneralMy vote of 3memberJepy20 Oct '11 - 23:19 
QuestionFileNamemembergooroo.Net19 Oct '11 - 5:06 
QuestionSaving to databasememberKiran Volety10 Sep '11 - 5:24 
AnswerRe: Saving to databasememberSyed BASHAR10 Sep '11 - 6:02 
GeneralMy vote of 5groupSaraf Talukder22 Aug '11 - 3:20 
QuestionWorked like a charm...memberMember 802384516 Aug '11 - 19:34 
Questionfile size & remove buttonmemberyefriend27 Jul '11 - 18:05 
AnswerRe: file size & remove buttonmemberSyed BASHAR29 Jul '11 - 10:02 
QuestionThanks!memberBigJoe71416 Jul '11 - 10:01 
AnswerRe: Thanks!memberMember 332085211 Feb '12 - 5:42 
Questionfile sizememberseverous260002 Jul '11 - 5:09 
AnswerRe: file size [modified]memberSyed BASHAR7 Aug '11 - 21:46 
GeneralRe: file size [modified]memberjalalbabaei26 May '12 - 2:04 

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

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130516.1 | Last Updated 27 May 2011
Article Copyright 2011 by Syed BASHAR
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid