|
asp.net upload faq
» Intro
» How to
» Quickstart
» Advanced
» Troubleshoot
resources
» Download Source Code
» ASP.NET Upload Control
search site
|
How to
Share this page with friends, or bookmark it for yourself:
Quick topical information on how to set up and perform uploading and downloading tasks. » Set up a html form to accept uploads» Handle larger uploads and avoid timeouts» Access an uploaded file» List all files uploaded to a page» Set the Content-Type for a download» Set a file name for a download and show download dialog» Stream file download» Set up a html form to accept uploadsTo prep a form element to accept uploads, set its enctype attribute to "multipart/form-data". Example:
» Handle larger uploads and avoid timeoutsThe httpRuntime web.config element controls settings about how ASP.NET processes requests, including maximum request length execution timeouts. These are controlled by the following attributes:
Here is an example with a 1GB request length and a 10 minute request timeout:
For maximum security from denial of service attacks, this setting should be done in a location tag to limit its effect just to the page that can accept uploads. Example:
IIS 7 ConfigurationIIS 7 has an additional request filtering module that must be configured seperately. This configuration is controlled by the requestFiltering/requestLimits web.config element. The request size is controlled by the following attribute:
Here is an example with a 1GB request length:
If you get an error such as "The requested page cannot be accessed because the related configuration data for the page is invalid" when you add the requestFiltering section to your web.config, you'll have to
modify the IIS 7 applicationHost.config file to enable you to configure request filtering at the application level instead of the machine level. To do this, open the
to read:
» Access an uploaded fileWhether you are using the HtmlInputFile html control (supported in .NET 1.0 and on) or the FileUpload webforms control (introduced in .NET 2.0), you can use the HttpPostedFile property to access information about the file, open it as a stream, and/or save it to disk. Examples: Save to disk:
Access as stream:
» List all files uploaded to a pageUse the HttpRequest.Files property to get a collection of all files uploaded during a page request. This property returns an HttpFileCollection that contains all the HttpPostedFile instances representing files that were uploaded. Example:
» Set the Content-Type for a downloadTo control the content type the browser assumes it's getting, set the Request.ContentType property. This sets the HTTP Content-Type header. The value should be a MIME type or "internet media type" that identifies the type of file being downloaded. The following code sets the content type to a JPEG image.
» Set a file name for a download and show download dialogTo set the filename for a download and force the download box to be shown, use the HTTP Content-Disposition header. Specify the filename, and "attachment" to display the download box. Example:
» Stream file downloadWhen working with filesystem downloads in ASP.NET 1.1 and above, scalable streaming is easy. Simply delegate the task to ASP.NET by calling the Response.WriteFile method:
If you are using ASP.NET 1.0, or need to write data from something other than a file, you need the following method. It copies one stream to another by reads and writing chunks instead of loading the entire stream into memory as is shown in many examples.
This method uses an 8KB buffer. Depending on the sizes of files and source and destination, you may want to change the chunk size. To use this method to write a file to the response in ASP.NET 1.0, see the following example.
© 2013 Krystalware
|
Painless ASP.NET file uploads
|