package util; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import javax.servlet.http.HttpServletRequest; import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.Map; public class ParseUploadUtil { /** * * @param request Servlet请求 * @param params 一个预备的键值表储存非文件流的参数Map * @return 上传的文件流 */ public static InputStream parseUpload(HttpServletRequest request, Map<String,String> params){ InputStream is = null; try{ DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); factory.setSizeThreshold(10*1024*1024); List<FileItem> items= upload.parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { is = item.getInputStream(); } else { String paramName = item.getFieldName(); String paramValue = item.getString(); paramValue = new String(paramValue.getBytes("ISO-8859-1"), "UTF-8"); params.put(paramName, paramValue); } } }catch (Exception e){ e.printStackTrace(); } return is; } }