最简单的方法,切割文件名,根据后缀来判断是否是图片.
第二种方式,通过IO读取获取Image对象,然后获取宽高,因为可以获取到宽高属性值的一定是图片,这种方式在写法上也比较简单,这里直接贴一下代码.
/**
* 判断文件是否是图片
* @param file
* @return
*/
private boolean isImage(File file) {
if (!file.exists()) {
return false;
}
BufferedImage image = null;
try {
image = ImageIO.read(file);
if (image == null || image.getWidth() <= 0 || image.getHeight() <= 0) {
return false;
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
这里再贴一下对于下载文件服务端设置强制下载的代码,设置一下HttpServletResponse就可以了
response.setContentType("application/force-download");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);