我有一个网页,可以用来上传文件。现在我需要检查图像文件类型是否正确,如png、jpg、jpeg、gif
我使用的是请求附带的mimeType,但如果我加载的是重命名为.jpg文件的.txt文件,那么它也会显示mime类型image/jpg,基本上我不想上传这个文件。现在我想确保没有人能够上传一个在.jpg/.png中重命名的.txt文件。。。。
作为参考,我在这里放了一段代码:
//storing images into bytearray.
byte[] bFile = baos.toByteArray();
if((bFile [i] & 0xFF) == 0xFF && (bFile[i+1] & 0xFF) == 0xD8 && (bFile[bFile.length - 2] & 0xFF) == 0xFF && (bFile[bFile.length - 1] & 0xFF) == 0xD9)
{
System.out.println("is Image");
}
上面这行只检查jpeg类型,但我想检查其他图像头的文件扩展名。有人能指出需要做什么来检查其他图像类型吗?
谢啦
我做过这样的事情:
/**
* Check if the image is a PNG. The first eight bytes of a PNG file always
* contain the following (decimal) values: 137 80 78 71 13 10 26 10 / Hex:
* 89 50 4e 47 0d 0a 1a 0a
*/
public boolean isValidPNG(InputStream is) {
try {
byte[] b = new byte[8];
is.read(b, 0, 8);
if (Arrays.equals(b, new BigInteger("89504e470d0a1a0a",16).toByteArray())) {
return true;
}
} catch (Exception e) {
//Ignore
return false;
}
return false;
}
/**
* Check if the image is a JPEG. JPEG image files begin with FF D8 and end
* with FF D9
*/
public boolean isValidJPEG(InputStream is, int size) {
try {
byte[] b = new byte[2];
is.read(b, 0, 2);
// check first 2 bytes:
if ((b[0]&0xff) != 0xff || (b[1]&0xff) != 0xd8) {
return false;
}
// check last 2 bytes:
is.skip(size-4);
is.read(b, 0, 2);
if ((b[0]&0xff) != 0xff || (b[1]&0xff) != 0xd9) {
return false;
}
} catch (Exception e) {
// Ignore
return false;
}
return true;
}
/** Check if the image is a valid GIF. GIF files start with GIF and 87a or 89a.
* http://www.onicos.com/staff/iz/formats/gif.html
*/
public boolean isValidGIF(InputStream is) {
try {
byte[] b=new byte[6];
is.read(b, 0, 6);
//check 1st 3 bytes
if(b[0]!='G' || b[1]!='I' || b[2]!='F') {
return false;
}
if(b[3]!='8' || !(b[4]=='7' || b[4]=='9') || b[5]!='a') {
return false;
}
} catch(Exception e) {
// Ignore
return false;
}
return true;
}
还有一个带有一些图像头的PHP主题:PHP:二进制图像数据,检查图像类型
我需要了解docker图像注册表的脱机使用情况 当docker图像从microsoft官方网站中提取、调整,然后推送到注册表时,它是完整的图像还是缺少图层 当其他主机从注册表中提取图像(可能脱机使用)时,客户端主机是否仍需要internet连接才能从microsoft服务器中提取缺失/机密层?(或者是从microsoft提取的完整图像,然后推送到注册表?) 签名呢?当图像被调整、存储在其中的应用程
我有一个图标img,并试图将其居中在一个卡片div中,但不知何故不起作用。我已经尝试了和和两者都没有帮助。我在下面附上了我的代码。感谢任何帮助。提前道谢。 null null
问题内容: 我正在创建一个Java应用程序,它将允许用户查看图像并使用鼠标平移图像。为了实现图像的平移,我使用了JViewports 和事件的组合。大部分代码在mouseDragged方法中 虽然这样做有效,但我认为必须有一种更简便的方法来完成所有这些工作。如果不是全部,是否可以替换防止视口从图像移到周围边界的代码? 问题答案: 尝试使用method代替:
问题内容: 我使用sf.json库在Java Web应用程序中映射传入请求的表单数据。 可以说传入请求是http:// localhost:8080 / app / addProfile ,其表单数据为: 服务器端 : 这种方法的主要问题是,如果对结构进行少量修改,则需要修改整个代码。 有没有可以配置验证所需规则的api? 问题答案: 您可以使用Json验证器:-https: //github.c
我使用sf.json库来映射在java中的Web应用程序中传入请求的表单数据。 假设传入请求http://localhost:8080/app/addProfile表单数据为: 服务器端: 这种方法的主要问题是,如果在结构中有微小的修改,那么整个代码都需要修改。 是否有api可以配置验证所需的规则?
在我的应用程序中,其中一个页面有更多的下拉框和文本框,我正在尝试验证每个文本框和下拉框的标题,但我无法构造适当的xpath来进行断言。 下面是文本框和下拉框的HTML代码。 文本框和下拉列表的标题如下: 请选择信用类型: 你需要多少? 贷款期限 雇用类型 我无法构造xpath来定位正确的webelement来断言标题,因为所有文本框的类名都是一样的。 找到元素的正确方法是什么?请推荐合适的XPat