[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема в логике(валидация файлов - MULTI)
Por$h
не правильно работает валидация загруженных файлов.
у меня 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

});

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.