у меня 2 проверки на стороне клиента
1 - по расширению файла
2 - по размеру файла
скрипт для multi-upload
т.е в окне browse можно выбирать несколько файлов.
не работает(т.е начинает загрузку файлов), когда выбраны файлы jpg и zip ("bg.jpg" "amcharts_3.2.0.zip" ),
хотя когда файлы jpg и xlsl то валидатор срабатывает.
ничего не понимаю вообщем.
форма:
<form action="file_uploader.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="myFile" multiple>
<input type="submit" name="test_f" value="Submit">
<div id="status"></div>
</form>
код:
$(function() {
var status = $('#status');
//$('#myFile').bind('change', function() {
$("form").submit(function(file, ext) {
var fileUpl = $("#myFile").val();
var ext = $('#myFile').val().split('.').pop().toLowerCase();
if(fileUpl != ''){
var flag=true;
// check for valid file extension ***********************
if($.inArray(ext, ['rar','zip','7z','pdf','xlsx','xls','docx','doc','txt']) == -1) {
status.text('Only pdf, word, excel and archives are allowed').css("color","red");
return flag=false;
}
else
status.text('');
// END check for valid file extension ***********************
// check size of each FILE **********************************
var maxFileSize = 3*1024*1024;
var files = $('#myFile').prop("files");
//files will be a FileList object.
// get size of files in array(obj)
var names = $.map(files, function(val) {
return val.size;
});
// check each file in loop
$.each(names, function() {
//alert(this);
var num = (this/(1024*1024));
if(this > maxFileSize){
//alert(num.toFixed(2)+" MB. One of the files is too large(file cannot be uploaded).Please read \"Upload notes\" ");
status.text(num.toFixed(2)+" MB. One of the files is too large(file cannot be uploaded).Please read \"Upload notes\" ").css("color","red");
return flag=false;
}
else
status.text('');
});
if(flag == false)
return false;
// END. check size of each FILE **********************************
}
});// end of submit form btn
});