我目前正在尝试找到一种方法来使用 jquery 来验证 aa 文件是否为图片格式(jpeg,jpg,bmp,gif,etc)
。.length
通过简单的比较,我已经能够确定输入是否为空。我如何能够检查文件类型并只接受有效的图片格式。
空或不输入:
if ($.trim($('#textInput').val()).length == 0) {
alert("Should Not Be Empty!");
}
我目前正在尝试找到一种方法来使用 jquery 来验证 aa 文件是否为图片格式(jpeg,jpg,bmp,gif,etc)
。.length
通过简单的比较,我已经能够确定输入是否为空。我如何能够检查文件类型并只接受有效的图片格式。
空或不输入:
if ($.trim($('#textInput').val()).length == 0) {
alert("Should Not Be Empty!");
}
给定一个文件输入:
var extension = $('#file_input').val().split('.').pop();
if (['bmp', 'gif', 'png', 'jpg', 'jpeg'].indexOf(extension) > -1) {
console.log('validated');
} else {
console.log('invalid extension');
}
对于更广泛的文件类型过滤,您最好使用服务器端验证。
您可以制作一个简单的函数来提取文件的扩展名:
function getExtension(file) {
return file.split('.').pop();
}
然后您可以检查输入值:
var file = $.trim($('#textInput').val());
if (['gif','png', ...].indexOf(getExtension(file)) > - 1) {
...
}
并检查这篇文章,也许有用:
出于安全原因,您不应使用 javascript 测试有效的文件类型。Javascript 只是客户端,因此您的脚本很容易被规避,或者用户可以简单地使用单独的扩展名重命名他们的文件,您的检查点将失败。
查看用户上传文件的MIME 类型和服务器端验证。这是一个复杂的主题,由您决定要花多少时间在上面。更彻底的检查会增加安全性。
我使用的检查是文件大小、MIME 类型和上传位置(以确保没有人试图从远程站点上传脚本)。PHP 中的这些函数是filesize
、fileinfo
、mime_content_type
和is_uploaded_file
。类似的功能也存在于其他语言中。
例如,您可以进一步测试文件的位,以确保它不是恶意代码或伪装成 JPEG 的文件,例如通过欺骗 MIME 标头。