1、定义合法文件类型的配置文件 allowuploadfiletype.properties
gif=image/gif
jpg=image/jpg,image/jpeg,image/pjpeg
bmp=image/bmp
png=image/png
swf=application/x-shockwave-flash
doc=application/msword
txt=text/plain
xls=application/vnd.ms-excel
ppt=application/vnd.ms-powerpoint
pdf=application/pdf
exe=application/octet-stream
2、验证工具类(从配置文件中读取可上传文件类型)
package cn.changtusoft.publicplatform.web.forms;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class Utils {
/**
* 存放可上传文件,从配置文件中读取
*
* 采用单例模式,只在类加载的时候读取一次,提高性能
*/
private static Properties pros = new Properties();
static {
try {
pros.load(BaseActionForm.class.getClassLoader().getResourceAsStream("allowuploadfiletype.properties"));
} catch (IOException e) {
System.out.println("读取定义允许上传文件的配置文件失败!!!");
e.printStackTrace();
}
}
/**
* 验证允许上传文件类型
*
* @param formfile
* @return
*/
public boolean validateFileType(FormFile formfile) {
if(formfile!=null && formfile.getFileSize()>0){
// 用来保存合法文件类型
List<String> allowType = new ArrayList<String>();
Set keySet = pros.keySet();
Iterator ite = keySet.iterator();
while (ite.hasNext()) {
String key = (String)ite.next();
String values = pros.getProperty(key);
// 转换为数组,类型
String[] valueArray = values.split(",");
for (String v : valueArray) {
allowType.add(v);
}
}
// 文件后缀名
String ext = getFileExt(formfile);
// 既判断文件的类型,也判断文件的后缀名,确保安全性
return allowType.contains(formfile.getContentType().toLowerCase()) && pros.keySet().contains(ext);
}
return false;
}
/**
* 验证上传图片格式是否合法
*
* @param formfile
* @return
*/
public boolean validateImageFileType(FormFile formfile) {
if(formfile!=null && formfile.getFileSize()>0){
List<String> arrowType = Arrays.asList("image/bmp","image/png","image/gif","image/jpg","image/jpeg","image/pjpeg");
return arrowType.contains(formfile.getContentType().toLowerCase());
}
return false;
}
/**
* 获取文件后缀名
*
* 如:abc.gif ===> gif
*
* @param formFile
* @return
*/
public String getFileExt(FormFile formFile) {
if (formFile != null) {
String fileName = formFile.getFileName();
return fileName.substring(fileName.lastIndexOf(".")+1);
}
return null;
}
}
分享到:
相关推荐
java验证文件真实格式和编码格式工具类,验证文件的文件格式和文件的编码格式给出正确的文件类型以及编码格式,从此解决文件解析乱码问题的烦恼
Base64工具类-字符编码工具类-数据类型转换-日期工具类-Escape中文...MD5编码工具类- MD5加密 生成32位md5码-数字工具类-随机数工具类-反射工具类-字符串处理工具类-URL工具类-UUID-常用的数据验证工具类-XML工具类-
工具类,支持多线程,断点下载.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
1.国际化工具类 ...14.HTTP请求工具类,支持get,post请求,支持上传文件 15.操作系统工具类,可以获取和判断操作系统类型 16.反射工具类 17.Java序列化工具类,支持序列化反序列化,可以用于OSGI环境
4.图片上传部分:在文件上传部分已有功能的基础上实现了上传前缩略图预览,前台js文件后缀验证,后台代码文件后缀验证和文件类型验证(就算修改后缀名也无法成功上传),支持图片上传前压缩; 5.多选择器多文件上传...
java项目中常使用到的工具类:zip压缩解压缩、rar解压(有密码的文件)、gz解压、FTP上传与下载
DropIt Protable 能够智能地分拣整理文件和文件夹,普通用户使用它,最基本的应用就是可以按扩展名智能分拣文件到指定的文件夹中。...活动日志:支持日志文件的创建,以验证排序操作 自动更新:支持自动软件更新
该工具类使用于spring boot 开发,返回值为md5加密后的字符串,参数为字符串,一般用于加密密码。为了防止MD5加密的密码...本人上传的表单验证规则的js文件【版本为V1.0的js文件】有限制,建议配合这两个文件一起使用。
一个php常用的工具类,它包含了JS弹窗,页面跳转,系统基本参数上传图片,html过滤,数据库输入过滤,清理session,各种验证,格式化,获取ip地址,加载模板,图片水印,文件操作等等很多实用的功能工具,方便大家...
主要用于身份验证的工具类
XlsOrXlsxUtil 工具类 以及所需要的JAR包和一个例子 commons-lang-2.3.jar commons-logging-1.1.jar dom4j-1.6.1.jar log4j-1.2.13.jar poi-3.7-20101029.jar poi-ooxml-3.7-20101029.jar poi-ooxml-schemas-3.7-...
一个php常用的工具类,它包含了JS弹窗,页面跳转,系统基本参数上传图片,html过滤,数据库输入过滤,清理session,各种验证,格式化,获取ip地址,加载模板,图片水印,文件操作等等很多实用的功能工具,方便大家...
common-utils Java常用工具类: 包含csv文件操作,excel表POI操作,文件上传,压缩,邮件发送,HTTP请求,XML解析,json操作,密码验证等
LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务 器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/...
2.1验证工具 支持大部分验证需求 一行代码一行代码即可满足您的常用验证需求,妈妈再也不用担心我的正则表达式了 一个步骤只需约会jar包就可以驱动,减少代码重新添加,让代码更清爽 更多扩展除工具提供的校验类外,...
LOG相关工具类(ToolLog.java) 功能待续-->切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner...
文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发...
uploader 大文件、断点续传、分片、秒传、普通文件上传样例工具类包封装了一些关于分片md5验证、断点续传、分片上传、等方法前端样例使用百度插件 WebUploader , 插件的源码还是有一定的问题的样例包对插件源码做了...
整合mysql备份恢复、购物车类、cookies管理类、curl类、日期工具类、文件下载类、电子邮件类、excel工具类、各种安全过滤工具类、ftp工具类、html代码生成类、模拟http协议类、图像工具类、分页类、拼音工具类、页面...
文件操作工具类(ToolFile.java),assets/raw/xml/shrePerface/等文件读写API 地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发...