Using this control, in ASP.NET one can upload files very easily. Though, it has few restrictions, yet I would say it is a fantastic Control.
By using the FileUpload control, one can upload pictures, text files, or other file. After selecting the file, the FileUpload control doesn’t automatically send a file to the server. To allow the user to submit the form, you must explicitly provide a control or mechanism. An event is needed to be raised, and within the even handler method, the code to save a file or to handle the contents of the file are handled.
Gives the uploaded file contents as a byte
Gives the uploaded file contents as a stream.
Gives get the name of the uploaded file.
It returns true, when a file is uploaded.
Gives the uploaded file wrapped in the
Table-1: Displaying the properties of FileUploadControl
Example showing uploading of file :
In this example, I have used Path Class to use the required Methods such as
- GetExtension etc.
Now, this Path class is available in System.IO
Here, i have restricted the FileUpload Control to upload only .jpg/.png/.bmp files.
The uploaded file is saved using the SaveAs()
method. Below method will save
the file in the applications root/upload folder.
If user selects any file other than .jpg/.png/.bmp extension, the following output
If a user forgets to Browse and clicks on the Upload Button
, the following
If a user selects any file successfully, then the following output appears:
FileUploadControl using RegularExpressionValidator control
In this following snap, i have used RegularExpressionValidator Control to check
for jpg/gif/png/bmp extension. If user selects some files of some other extension,
Output showing validation performed by the RegularExpressionValidator Control
This output appears when i choose a file of different extension.
Uploading 3 files at a time with a single Button
Here, you can select 3 files at a time and upload them in ‘C:\Upload’ location with single Button Click event. To have a control on the uploaded files, I had to use HttpFileCollection class with the Request.Files property. In my example, I have worked with the FileName and the Location i.e., where it is saved.
Both these HttpFileCollection and HttpPostedFile are available in System.Web namespace.
HttpFileCollection lets us access the files and it also organizes the files which are being uploaded from a client as a file collection.
Request.File property gets the collection of files uploaded by the client in multipart MIME format.
HttpPostedFile provides properties and methods to access information about an individual file and also to read and save the file.
By default, ASP.NET rejects a request that is larger than 4 MB. We can change this maximum by modifying the MaxRequestLength setting in the web.config file. This actually will set the largest allowed file in kilobytes.
If you change MaxRequestLength property, you must be concerned about the executionTimeout property also. This property sets the time for a request to attempt to execute to the server before ASP.NET shuts down the request. The default setting is only 90 seconds. Hence, if you increase the size of the MaxRequestLength property, you should also increase the executionTimeout property.
The RequestLengthDiskThreshold setting in the web.config file determines how a form post is buffered to the file system. Therefore, by accessing the RequestLengthDiskThreshold property, you can determine the amount of data that is buffered in server memory for a request. When the size of the file passes the RequestLengthDiskThreshold setting, the remainder of the file is buffered to the file system.
Any post larger than 80 KB is stored in the file buffer. If you want, you can modify the RequestLengthDiskThreshold property.
The following web.config file enables files up to 10MB to be posted. The buffering threshold is changed to 100KB.
I have tried to explain this control, so that my readers can enjoy reading
this. Please forward any suggestions or comments after reading this article.
About the Author