Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

Upload a file with required validation using jQuery

4.79/5 (7 votes)
16 Jul 2013CPOL1 min read 81.4K  
Uploading a File with the required validation

Introduction

In this example, I will explain how to specify what file can be selected for uploading from a FileUpload control and until the valid file is selected the Upload button would be disabled. The complete validation process would be done with jQuery. And we will also see how to display a label instead of an alert message box.

Background

In many forums, I see the question of how to validate the required file using JavaScript or jQuery.

Image 1

When you click on the Browse button, a window will be opened in the client side.

Image 2

Select any file and click the Open button. If you selected only .Jpg or .JPEG files, the Upload button would be enabled. Try out with both, like select a .jpg file and check if you can see the Upload button. If you click any other file than a .jpg extension file, then you would see a message saying that “Only '.jpeg','.jpg' formats are allowed”.

Selecting a non .jpg extension:

Image 3

Selecting a .jpg file:

Image 4

Using the code

In the file extension we have taken only .jpg or .jpeg files and we are checking weather the selected file from fileupload is a .jpg or not? If it is not a .jpg or .jpeg then we are displaying a label message Only .jpg format is allowed. If it's a .jpg file then we are enabling the upload button.

XML
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script type="text/javascript">
    $(function () {
        $('#<%=fuPhoto.ClientID %>').change(
            function () {
                var fileExtension = ['jpeg', 'jpg'];
                if ($.inArray($(this).val().split('.').pop().toLowerCase(), fileExtension) == -1) {
                    // alert("Only '.jpeg','.jpg' formats are allowed.");
                    $('#<%=btnUpload.ClientID %>').attr("disabled", true);
                    $('#<%= myLabel.ClientID %>').html("Only '.jpeg','.jpg' formats are allowed.");
                }
                else {
                    $('#<%=btnUpload.ClientID %>').attr("disabled", false);
                    $('#<%= myLabel.ClientID %>').html(" ");
                } 
            })  
    })  
</script>
<form id="form1" runat="server">
<div>  
    <asp:FileUpload ID="fuPhoto" runat="server" />
    <asp:Button ID="btnUpload" Text="Upload" runat="server" Enabled="false" />
    <asp:Label ID="myLabel" runat="server" ForeColor="#CC0000" />
</div> 
</form>

In the file extension, you can write your own extensions as per your requirements, like .gif, .doc, .ppt etc.

License

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