Проверьте входной файл на правильный формат с помощью jquery

Я использую этот код http://jsbin.com/uboqu3/83/edit#source

 function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#blah')
                    .attr('src', e.target.result)
                    .width(180);
            };

            reader.readAsDataURL(input.files[0]);
        }
    }

Мне нужно проверить с помощью jquery правильный формат. Например, если изображения имеют формат jpg, то все в порядке, и функция показывает изображение, которое будет загружено. Если изображения --> gif, png tahn show alert или div message, тип ввода=файл будет сброшен, и изображение отображаться не будет. Может ли кто-нибудь помочь мне с этим.


person kolxoznik1    schedule 27.07.2011    source источник


Ответы (3)


Вы можете просто проверить, что имя файла имеет расширение, отличное от jpg:

function readURL(input) {
    if (input.files && input.files[0]) {
        //Check the extension
        if(!(/\.jpe?g$/i).test(input.files[0].name)) return alert('Error');
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#blah')
                .attr('src', e.target.result)
                .width(180);
        };

        reader.readAsDataURL(input.files[0]);
    }
}
person mck89    schedule 27.07.2011

Попробуй это

function readURL(input) {
        if (input.files && input.files[0]) {
            var fileName = input.files[0];
            if(fileName.toLowerCase().indexOf(".jpg") == -1){
               alert("Invalid image file");
               return;
            }
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#blah')
                    .attr('src', e.target.result)
                    .width(180);
            };

            reader.readAsDataURL(input.files[0]);
        }
    }
person ShankarSangoli    schedule 27.07.2011

Более надежный подход — проверить тип файла. То есть:

function readURL(input) {
        if (input.files && input.files[0]) {
            var fileName = input.files[0];
            if(fileName.type != "image/jpeg"){
               alert("Invalid image file");
               return;
            }
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#blah')
                    .attr('src', e.target.result)
                    .width(180);
            };

            reader.readAsDataURL(input.files[0]);
        }
    }
person Andrew Dyster    schedule 20.05.2012