使用jquery检查输入文件的格式是否正确

时间:2011-07-27 14:45:40

标签: 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比一切都好,功能显示图片whitch将被取消加载。如果图片 - > gif,png tahn显示警告或div消息,输入类型=文件将被重置,不会显示图片。有人可以用这个来打扰我。

3 个答案:

答案 0 :(得分:0)

您可以简单地检查文件名是否具有与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]);
    }
}

答案 1 :(得分:0)

试试这个

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]);
        }
    }

答案 2 :(得分:0)

更可靠的方法是检查文件类型。即:

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]);
        }
    }