From eee839dc9e25dac1d17ecaba7197af8918bef6b8 Mon Sep 17 00:00:00 2001 From: Faheem Abrar Date: Thu, 30 Jan 2014 20:53:40 +0600 Subject: [PATCH] Adding maximum file limit feature This script is great, except for one limitation - user cannot enter a maximum file size. I have added that functionality. User will input a parameter named maxSize (by default it will be 1024), which will be counted as kilobyte. Then the file size will be compared with user's given size limit. If the file size exceeds the limit, the file is not uploaded and an error message shows. --- jquery.ajaxfileupload.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jquery.ajaxfileupload.js b/jquery.ajaxfileupload.js index 6b9fbc6..b62f3c3 100644 --- a/jquery.ajaxfileupload.js +++ b/jquery.ajaxfileupload.js @@ -15,6 +15,7 @@ var settings = { params: {}, action: '', + maxSize: '1024', onStart: function() { console.log('starting upload'); console.log(this); }, onComplete: function(response) { console.log('got response: '); console.log(response); console.log(this); }, onCancel: function() { console.log('cancelling: '); console.log(this); }, @@ -75,11 +76,18 @@ // make sure extension is valid var ext = $element.val().split('.').pop().toLowerCase(); + // get file size + var size = $element.get(0).files[0].size; if(true === settings.validate_extensions && $.inArray(ext, settings.valid_extensions) == -1) { // Pass back to the user settings.onComplete.apply($element, [{status: false, message: 'The select file type is invalid. File must be ' + settings.valid_extensions.join(', ') + '.'}, settings.params]); - } else + } + // make sure file size is less than specified + else if((size / 1024) > settings.maxSize){ + settings.onComplete.apply($element, [{success: false, message: 'The selected file is bigger than maximum limit of ' + settings.maxSize + ' kilobyte'}, settings.params]); + } + else { uploading_file = true;