新手来了。问题是,我目前已经写了一个方法,它检查上传的文件大小和扩展名,以便验证它。然而,检查扩展并不是一个解决方案,因为这种验证可能会导致很多问题。我想要做的是检查实际的文件类型,并在不使用扩展方法的情况下验证它。我曾尝试使用jQuery file validator,但无济于事。这是我当前代码中的一段代码:
<input type='file' id='imageLoader' name='imageLoader' accept="image/*" data-type='image' />
脚本:
App.Dispatcher.on("uploadpic", function() {
$(":file").change(function() {
if (this.files && this.files[0] && this.files[0].name.match(/\.(jpg|jpeg|png|gif)$/) ) {
if(this.files[0].size>1048576) {
alert('File size is larger than 1MB!');
}
else {
var reader = new FileReader();
reader.onload = imageIsLoaded;
reader.readAsDataURL(this.files[0]);
}
} else alert('This is not an image file!');
});
function imageIsLoaded(e) {
result = e.target.result;
$('#image').attr('src', result);
};
});
一旦上传输入发生变化,它就会被调用,在验证之后,它会上传并显示图像。现在,我只关心验证,任何帮助或想法都会非常感谢!
发布于 2015-04-23 03:00:16
发布于 2017-11-07 20:58:43
如果你只想知道这个文件是否是一个图像,这里有一个快速提示:
var file = this.files[0];
var fileType = file["type"];
if (fileType.search('image') >= 0) {
...
}
发布于 2018-06-07 21:50:38
如果有人来这里使用jQuery验证器,一个简单的方法是:
jQuery.validator.addMethod(
"onlyimages",
function (value, element) {
if (this.optional(element) || !element.files || !element.files[0]) {
return true;
} else {
var fileType = element.files[0].type;
var isImage = /^(image)\//i.test(fileType);
return isImage;
}
},
'Sorry, we can only accept image files.'
);
然后将其添加到.validate()函数中。
https://stackoverflow.com/questions/29805909
复制相似问题