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

您只需检查文件名是否具有与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]); } } 

试试这个

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

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

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