melonsoda20
melonsoda20

Reputation: 25

JQuery check the file size from inside a function

So I have these Jquery code where the function will check the file extension and the file size from the input file. The checking for the file extension works fine, but the file size checking is not working, can you guys help me with this problem?

$(document).ready(function () {
/* Some other code 

*/

var fileExtension = ['jpeg', 'jpg', 'png', 'pdf'];    
    var status = false;

    function checkFile(fileinput){
        if ($.inArray(fileinput.split('.').pop().toLowerCase(), fileExtension) == -1) {
            alert("Tolong upload file dengan extensi: " + fileExtension.join(', '));
            fileinput.value = "";
            return status = false;
        }

        if (fileinput[0].size > 1048576) {
            alert("The maximum file size is 1 mb");
            fileinput.value = "";
            return status = false;
        }

        else {
            return status = true;
        }
    }

    $('#btn_IdentitasKTP\\/Paspor').on('click', function () {
        $('#file_IdentitasKTP\\/Paspor').trigger('click')
    });

    $('#file_IdentitasKTP\\/Paspor').change(function () {

        var fileinput = $('#file_IdentitasKTP\\/Paspor').val();

        checkFile(fileinput);

        if (status == true) {
            var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '');
            $('#text_IdentitasKTP\\/Paspor').val(file_name);
            status = false;
        }

    });
});

Upvotes: 1

Views: 167

Answers (3)

melonsoda20
melonsoda20

Reputation: 25

This is the updated code for this question.

    $(document).ready(function () {
/* Some other code 

*/

var fileExtension = ['jpeg', 'jpg', 'png', 'pdf'];    
    var status = false;

    function checkFile(fileinput){
        if ($.inArray(fileinput[0].name.split('.').pop().toLowerCase(), fileExtension) == -1) {
            alert("Tolong upload file dengan extensi: " + fileExtension.join(', '));
            fileinput.value = "";
            return status = false;
        }

        if (fileinput[0].size > 1048576) {
            alert("Tolong upload file dengan ukuran dibawah 1mb");
            fileinput.value = "";
            return status = false;
        }

        else {
            return status = true;
        }
    }

    $('#btn_IdentitasKTP\\/Paspor').on('click', function () {
        $('#file_IdentitasKTP\\/Paspor').trigger('click')
    });

    $('#file_IdentitasKTP\\/Paspor').change(function () {
        var fileinput = this.files;

        checkFile(fileinput);

        if (status == true) {
            var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '');
            $('#text_IdentitasKTP\\/Paspor').val(file_name);
            status = false;
        }

    });
});

Upvotes: 0

Kaleemullah
Kaleemullah

Reputation: 544

For example to upload image by AJAX. You will simply write this code. You will size with object. it will return size of that object.

$(document).ready(function(e) {
  $("#uploadimage").on('submit', (function(e) {
    e.preventDefault();
    formdata = new FormData(this);
    if (formdata[0].size = < 1000) {
      $.ajax({
        url: "PHp File name path", // Url to which the request is send
        type: "POST", // Type of request to be send, called as method
        data: formdata, // Data sent to server, a set of key/value pairs (i.e. form fields and values)
        contentType: false, // The content type used when sending data to the server.
        cache: false, // To unable request pages to be cached
        processData: false, // To send DOMDocument or non processed data file it is set to false
        success: function(data) // A function to be called if request succeeds
        {
          $('#loading').hide();
          $("#message").html(data);
        }

      });
    } else {
      alert("You can not Upload this file Please resize this image.")
    }
  }));

Upvotes: 0

khofaai
khofaai

Reputation: 1357

Try this :

$('#file_IdentitasKTP\\/Paspor').change(function () {
    var fileinput = this.files;
    ...

you can check file size by :

console.log(fileinput[0].size)

Upvotes: 2

Related Questions