博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件上传限制文件类型
阅读量:6290 次
发布时间:2019-06-22

本文共 2614 字,大约阅读时间需要 8 分钟。

public class FileUploadManager {    /** 允许上传的扩展名*/      public static String [] extensionPermit = {"txt", "xls", "zip"};     public FileUploadManager(User user, HttpServletRequest request) throws Exception {        super();        session = request.getSession();        DiskFileItemFactory factory = new DiskFileItemFactory();        upload = new ServletFileUpload(factory);        SystemManager systemManager = ComponentFactory.getSystemManager();        int docSize = Integer.parseInt(systemManager.getSystemConfig(user.getCompanyID(), "DOCUMENT_SIZE_LIMIT").getValue());        int maxFileSize = 1024 * 1024 * docSize;        upload.setFileSizeMax(maxFileSize); // 设置单个文件的最大上传大小        upload.setSizeMax(maxFileSize + 500); // 设置整个request的最大大小        upload.setProgressListener(new FileUploadListener(request));        extensionPermit = systemManager.getSystemConfig(user.getCompanyID(), "DOCUMENT_EXT_LIMIT").getValue().split(",");//设置文件类型        files = upload.parseRequest(request);    }class QCServletFileUpload extends ServletFileUpload {    private Map textHash = new HashMap();//表单数据    private int fileItemCount = 0;    // 重载parseRequest方法    public List parseRequest(HttpServletRequest request) throws FileUploadException {        List items = new ArrayList();//文件        try {            FileItemIterator iter = getItemIterator(request);            FileItemFactory fac = getFileItemFactory();            while (iter.hasNext()) {                FileItemStream item = iter.next();                FileItem fileItem = fac.createItem(item.getFieldName(), item.getContentType(), item.isFormField(), item.getName());                Streams.copy(item.openStream(), fileItem.getOutputStream(), true);                //fileItem.getOutputStream().close();                if (fileItem.isFormField()) { // 处理form field                    textHash.put(fileItem.getFieldName(), fileItem);                } else if (fileItem.getName() != null && fileItem.getName().length() > 0) {
// 处理file field String fileExtension = FilenameUtils.getExtension(fileItem.getName()); if(!ArrayUtils.contains(FileUploadManager.extensionPermit, fileExtension)){ fileItemCount++; items.add(fileItem); }else{ throw new FileUploadException("文件" + fileItem.getName() + "类型不支持."); } } } } catch (Exception e) { e.printStackTrace(); throw new FileUploadException(e.getMessage(), e); } return items; }}

 

转载地址:http://bykta.baihongyu.com/

你可能感兴趣的文章
数据泵导出oracle 10g数据库
查看>>
LYSE-模块
查看>>
Date Picker和UITool Bar控件简单介绍
查看>>
sql server 实现多表连接查询
查看>>
HTTP 1.1与HTTP 1.0的比较
查看>>
如何在命令行脚本中启动带参数的Windows服务
查看>>
abstract vs interface
查看>>
nodejs笔记1 ----关于express不是本地命令
查看>>
python debug
查看>>
docker-machine 远程安装docker
查看>>
最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
查看>>
3.2 进程间通信之fifo
查看>>
WEB 开发前传——js笔记
查看>>
C++多线程编程入门(转)
查看>>
C# to IL 6 Reference and Value Types(引用类型和值类型)
查看>>
Python 爬虫十六式 - 第七式:正则的艺术
查看>>
Android Studio的使用(五)--导入第三方Jar包
查看>>
PCL学习笔记(一)
查看>>
CoreGraphics相关方法
查看>>
Node Express 初探
查看>>