Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6643111
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Java

2011-09-27 21:56:14

普通方式:

org.apache.commons.fileupload.disk.DiskFileItemFactory的jar包自己写的方法。

那个方法里核心是调用了

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

List fileItems =   fileItems = upload.parseRequest(request);

 

示例代码:

Java代码 复制代码 收藏代码
  1. public static String processFormData(HttpServletRequest request, Map formMap) {   
  2.   
  3.         String message = "";   
  4.   
  5.         DiskFileItemFactory factory = new DiskFileItemFactory();   
  6.   
  7.         ServletFileUpload upload = new ServletFileUpload(factory);   
  8.   
  9.         String value = PropertiesUtil.getConfigureMessage("image-upload-max-size");   
  10.   
  11.         int imageMaxSize = Integer.parseInt(value);   
  12.   
  13.         int formMaxSize = 30 * 1024 * 1024;   
  14.   
  15.         upload.setSizeMax(formMaxSize);   
  16.   
  17.         List fileItems = null;   
  18.   
  19.         try {   
  20.   
  21.             fileItems = upload.parseRequest(request);   
  22.   
  23.         } catch (FileUploadException ex) {   
  24.   
  25.             message = PropertiesUtil.getErrorMessage("utilhttp.upload.oversize");   
  26.   
  27.             return message;   
  28.   
  29.         }   
  30.   
  31.         Iterator it = fileItems.iterator();   
  32.   
  33.         FileItem fileItem = null;   
  34.   
  35.         String fieldName = null, fileName = null;   
  36.   
  37.         long imgSize = 0;   
  38.   
  39.         it = fileItems.iterator();   
  40.   
  41.         while (it.hasNext()) {   
  42.   
  43.             fileItem = (FileItem) it.next();   
  44.   
  45.             fieldName = fileItem.getFieldName();   
  46.   
  47.             if (fileItem.isFormField()) {   
  48.   
  49.                 formMap.put(fieldName, fileItem.getString().trim());   
  50.   
  51.             } else {   
  52.   
  53.                 fileName = fileItem.getName();   
  54.   
  55.                 // no-select file   
  56.   
  57.                 if (fileName.trim() == "") {   
  58.   
  59.                     continue;   
  60.   
  61.                 }   
  62.   
  63.                 imgSize = fileItem.getSize();   
  64.   
  65.                 if (imgSize > 0) {   
  66.   
  67.                     if (fileName.lastIndexOf(File.separator) > 0) {   
  68.   
  69.                         fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1);   
  70.   
  71.                     }   
  72.   
  73.                     fileName = fileName.toLowerCase();   
  74.   
  75.                     if (!validateFileFormats(fileName)) {   
  76.   
  77.                         message = PropertiesUtil.getErrorMessage("utilhttp.upload.photo.type.unallowed");   
  78.   
  79.                         return message;   
  80.   
  81.                     } else if (imgSize > imageMaxSize) {   
  82.   
  83.                         message = "toolarge";   
  84.   
  85.                         return message;   
  86.   
  87.                     }   
  88.   
  89.                     formMap.put(fieldName, fileItem.get());   
  90.   
  91.                 } else {   
  92.   
  93.                     // empty image   
  94.   
  95.                     message = "empty.image";   
  96.   
  97.                     return message;   
  98.   
  99.                 }   
  100.   
  101.             }   
  102.   
  103.         }   
  104.   
  105.         return null;   
  106.   
  107.     }  
public static String processFormData(HttpServletRequest request, Map formMap) { String message = ""; DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); String value = PropertiesUtil.getConfigureMessage("image-upload-max-size"); int imageMaxSize = Integer.parseInt(value); int formMaxSize = 30 * 1024 * 1024; upload.setSizeMax(formMaxSize); List fileItems = null; try { fileItems = upload.parseRequest(request); } catch (FileUploadException ex) { message = PropertiesUtil.getErrorMessage("utilhttp.upload.oversize"); return message; } Iterator it = fileItems.iterator(); FileItem fileItem = null; String fieldName = null, fileName = null; long imgSize = 0; it = fileItems.iterator(); while (it.hasNext()) { fileItem = (FileItem) it.next(); fieldName = fileItem.getFieldName(); if (fileItem.isFormField()) { formMap.put(fieldName, fileItem.getString().trim()); } else { fileName = fileItem.getName(); // no-select file if (fileName.trim() == "") { continue; } imgSize = fileItem.getSize(); if (imgSize > 0) { if (fileName.lastIndexOf(File.separator) > 0) { fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1); } fileName = fileName.toLowerCase(); if (!validateFileFormats(fileName)) { message = PropertiesUtil.getErrorMessage("utilhttp.upload.photo.type.unallowed"); return message; } else if (imgSize > imageMaxSize) { message = "toolarge"; return message; } formMap.put(fieldName, fileItem.get()); } else { // empty image message = "empty.image"; return message; } } } return null; } 

 

 

 

 

 

还有另一种方法,ofbiz里有一个HttpRequestFileUpload的工具类。它的上传文件到服务器的方法是

HttpRequestFileUpload uploadObject = new HttpRequestFileUpload();

    uploadObject.setOverrideFilename(defaultFileName);

    uploadObject.setSavePath(imageServerPath + "/" + filePathPrefix);

    uploadObject.doUpload(request);

 

阅读(1434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~