For larger files, it is better to use some Flash downloader - for example Uploadify or SWFUpload. I prefer to use Uploadify. Below is an example of my project. You must include uploadify.css and jquery, swfobject and jquery.uploadify JavaScript files and initialize the upload on the ASPX page:
<link href="uploadify.css" rel="stylesheet" type="text/css" /> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script src="Scripts/swfobject.js" type="text/javascript"></script> <script src="Scripts/jquery.uploadify.v2.1.4.min.js" type="text/javascript"></script> <script type="text/javascript"> // <![CDATA[ $(document).ready(function () { $('#fileInput').uploadify({ 'uploader': 'Scripts/uploadify.swf', 'script': 'Upload.ashx', 'scriptData': {}, 'cancelImg': 'Images/cancel.png', 'auto': true, 'multi': true, 'fileDesc': 'PDF files', 'fileExt': '*.pdf', 'queueSizeLimit': 90, 'sizeLimit': 4000000, 'buttonText': 'Browse', 'folder': '/uploads', 'onComplete': function (event, queueID, fileObj, response, data) { var message = '<div>' + response + '</div>'; var results = $('#uploadResults'); results.html(message + results.html()); }, 'onAllComplete': function (event, queueID, fileObj, response, data) { } }); }); // ]]></script>
Instead of asp: FileUpload control, use input with a file type. HTML is needed here:
<input id="fileInput" name="fileInput" type="file" /> <div id="uploadResults"></div>
Then create an ASHX handler that will handle you:
public class Upload : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { try { HttpPostedFile file = context.Request.Files["Filedata"];
source share