我正在开发一个允许用户上传图片的Web应用程序。 我关心的是文件的大小,特别是如果它们是无效的格式。
我想知道在阅读整个文件之前,java(或第三方库)是否有办法检查允许的文件格式(jpg,gif和png)。
答案 0 :(得分:3)
如果您只想支持几种类型的图像,可以从(上)加载图像开始,在某些时候使用前几个字节来检查您是否希望继续上传。
前几个字节magic number可识别相当多的图像格式。如果数字匹配,你当然不知道该文件是否有效,但它可能用于匹配扩展名和幻数,以防止实际上根本不对应。
查看this page查看一些检查mime类型的Java。请阅读文档或源以检查任何给定方法是否需要整个文件,或者可以在前几个字节上操作。我没有使用过这些库:)
另请查看this page,其中还列出了一些Java库,以及一些基于检测的论文。
如果你找到了自己喜欢的东西,不要忘记提供一些反馈!
答案 1 :(得分:0)
您不需要第三方库。你必须编写的代码很简单。
在处理上传时,请按照扩展程序过滤文件。这并不完美,但会占大多数情况。
但是,这意味着文件已经上传到服务器。您可以在客户端使用一些javascript来执行相同的操作 - 检查文件上传组件的值是否包含允许的文件类型 - .jpg
,.png
等。
答案 2 :(得分:0)
function extensionsOkay(fval) {
var extension = new Array();
extension[0] = ".png";
extension[1] = ".gif";
extension[2] = ".jpg";
extension[3] = ".jpeg";
extension[4] = ".bmp";
// No other customization needed.
var thisext = fval.substr(fval.lastIndexOf('.')).toLowerCase();
for(var i = 0; i < extension.length; i++) {
if(thisext == extension[i]) {
$('#support-documents').hide();
return true; }
}
// show client side error message
$('#span.failed').show();
return false;
}