Validate File size before upload

后端 未结 3 1682
野性不改
野性不改 2021-01-06 19:14

I need to validate the file which is to be uploaded to the server. The validation must be done before uploading it. i.e., validation completed at client side. This task shou

相关标签:
3条回答
  • 2021-01-06 19:34

    You can achieve by using jquery:

    #
    <span>
    <b>Attachment</b> (8 MB only)<label id="attached" style="color:red; margin-left:5px"></label>
    </span>
    <input type="file" id="Attachment" name="Attachment" class="admin_textfeildmedium" value="" style="width:551px" accept="image/*">
    
    #
    jQuery(document).ready(function () {
    
    
    jQuery('#Attachment').bind('change', function () {
                                //fileUpload = 0;
                                var iSize = (this.files[0].size / 1024);
                                if (iSize / 1024 > 1) {
                                    if (((iSize / 1024) / 1024) > 1) {
                                        fileUpload = 0;
                                    } else {
                                        iSize = (Math.round((iSize / 1024) * 100) / 100);
                                        if (iSize <= 8) {
                                            fileUpload = 1;
                                        } else {
                                            fileUpload = 0;
                                        }
                                    }
                                } else {
                                    fileUpload = 1;
                                }
                                if (fileUpload == 0) {
                                   // alert("Your attachment exceeded 8MB.");
                                    jQuery('#attached').html('Your attachment exceeded 8MB.');
                                    jQuery('#Attachment').val('');
                                }
    
                            });
    
                        });
    
    0 讨论(0)
  • 2021-01-06 19:39

    .Net MVC Solution:

    I am using the data type of HttpPostedFileBase

    In your Views > Shared Folder, create a new folder called "EditorTemplates" and use this:

    @model HttpPostedFileBase
    
    @Html.TextBox("", null, new { type = "file" })
    

    I then pass this HttpPostedFileBase object from the controller to a method that does the following:

     public Files Upload(HttpPostedFileBase files)
     {
        if (files.ContentLength > 0) {
    
        .....
     }
    

    The ContentLength property on the HttpPostedFileBase class contains the number of bytes in the posted file

    This will make it so you have a file uploading box available.

    On the ASP.NET WebForms Solution:

    <asp:FileUpload ID="fuPictures" runat="server" />
    

    Make a button with a OnClick or OnCommand event that does something like this:

    if (fuPictures.HasFile == true)
    {
        int fileSize = fuPictures.FileBytes;
    }
    

    That will give you the file size. Hope this helps.

    0 讨论(0)
  • 2021-01-06 19:48

    When it comes for a browser that supports HTML 5, it can be easily achieved with simple javascript:

    Html Syntax

    <input type="file" id="myFile" />
    

    Javascript syntax

    //gets the element by its id
    var myFile = document.getElementById('myFile');
    
    //binds to onchange event of the input field
    myFile.addEventListener('change', function() {
      //this.files[0].size gets the size of your file.
      alert(this.files[0].size);
    
    });
    

    BUT, when it comes to an older browser (and we are all looking to you, Internet Explorer), the only way to do that on the client side is by using ActiveX:

    var myFile = document.getElementById('myFile');
    
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = myfile.file.value;
    var thefile = myFSO.getFile(filepath);
    var size = thefile.size;
        alert(size + " bytes");
    
    0 讨论(0)
提交回复
热议问题