src下建个properties文件,放置允许上传的文件类型:
allowuploadfiletype.properties
- gif=p_w_picpath/gif
- jpg=p_w_picpath/jpg,p_w_picpath/jpeg,p_w_picpath/pjpeg
- bmp=p_w_picpath/bmp
- png=p_w_picpath/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
在BaseForm 里面写具体的验证方法:
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Properties;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.upload.FormFile;
- public class BaseForm extends ActionForm {
- private static Properties properties = new Properties();
- static{
- try {
- properties.load(BaseForm.class.getClassLoader().getResourceAsStream("allowuploadfiletype.properties"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 获取文件扩展名
- * @param formfile
- * @return
- */
- public static String getExt(FormFile formfile) {
- return formfile.getFileName().substring(
- formfile.getFileName().lastIndexOf('.') + 1).toLowerCase();
- }
- /**
- * 验证上传文件是否属于图片/flash动画/word文件/exe文件/pdf文件/TxT文件/xls文件/ppt文件
- *
- * @param formfile
- * @return
- */
- public static boolean validateFileType(FormFile formfile) {
- if (formfile != null && formfile.getFileSize() > 0) {
- String ext = getExt(formfile);
- List<String> allowType = new ArrayList<String>();
- for (Object key : properties.keySet()) {
- String value = (String) properties.get(key);
- String[] values = value.split(",");
- for (String v : values) {
- allowType.add(v.trim());
- }
- }
- return allowType.contains(formfile.getContentType().toLowerCase())
- && properties.keySet().contains(ext);
- }
- return true;
- }
- }
转载于:https://blog.51cto.com/huqianhao/955156