upload.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>上传图片的表单页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<form action="uploaddo.jsp" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>姓名:</td>
<td><input type="text" name="txtUserName" /></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="rdoSex" value="男" checked="checked"/>男
<input type="radio" name="rdoSex" value="女"/>女
</td>
</tr>
<tr>
<td>教育:</td>
<td>
<select name="selEdu">
<option value="小学">小学</option>
<option value="中学">中学</option>
<option value="大学">大学</option>
</select>
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="rdoHibby" value="篮球"/>篮球
<input type="checkbox" name="rdoHibby" value="足球"/>足球
<input type="checkbox" name="rdoHibby" value="排球"/>排球
</td>
</tr>
<tr>
<td>图片:</td>
<td><input type="file" name="txtPhoto" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交"/>
</td>
</tr>
</table>
</form>
</body>
</html>

uploaddo.jsp

 <%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.io.*,java.lang.*" %>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%
HashMap<String,ArrayList<String>> mapField =new HashMap<String,ArrayList<String>>();
HashMap<String,ArrayList<String>> mapFile =new HashMap<String,ArrayList<String>>();
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 4);//设置缓冲区4kb
String bufferFilePath = request.getSession().getServletContext().getRealPath("temp/buffer");
factory.setRepository(new File(bufferFilePath));//设置上传文件用到临时文件存放路径
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(1024 * 1024 * 3);//设置单个文件的最大限制
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
String fieldName = item.getFieldName();//获取name
if (item.isFormField()) {
//如果是表单字段
String fieldValue = item.getString("utf-8");//获取value
ArrayList<String> list = null;
if(mapField.containsKey(fieldName)){
list = mapField.get(fieldName);
}else{
list = new ArrayList<String>();
}
list.add(fieldValue);
mapField.put(fieldName, list);
} else {
//如果是上传控件
String uploadFileName = item.getName();//读取上传图片文件名称
if (uploadFileName != null && !uploadFileName.equals("")) {
String uuid = UUID.randomUUID().toString();
String fileType = uploadFileName.substring(uploadFileName.lastIndexOf("."));
String fileName = "upload/" + uuid + fileType;
String uploadFilePath = request.getSession().getServletContext().getRealPath("/");
File saveFile = new File(uploadFilePath, fileName);
item.write(saveFile);//保存上传图片到服务器
ArrayList<String> list = null;
if(mapFile.containsKey(fieldName)){
list = mapFile.get(fieldName);
}else{
list = new ArrayList<String>();
}
list.add(fileName);
mapFile.put(fieldName, list);
}
}
}
} catch (FileUploadBase.FileSizeLimitExceededException ex) {
out.print("上传文件失败,文件超过3M。");
} catch (FileUploadBase.IOFileUploadException ex) {
out.print("设置上传文件用到临时文件存放路径不存在。");
} catch (Exception ex) {
out.print(ex);
}
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>处理上传图片的表单页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
for(Map.Entry<String,ArrayList<String>> field : mapField.entrySet())
{
String key = field.getKey();
List<String> values = field.getValue();
StringBuffer sb = new StringBuffer();
for(String value : values){
sb.append(value);
sb.append(",");
}
String value = sb.toString();
out.print(String.format("name:%s,&nbsp;&nbsp;&nbsp;&nbsp;value:%s<br/>",key,value));
}
%>
<hr/>
<%
for(ArrayList<String> values : mapFile.values())
{
for(String value : values){
out.print(String.format("<img src='%s' style='width:300px;heigth:300px'/><br/>",value));
}
}
%>
</body>
</html>

jsp处理表单上传图片(commons-fileupload-1.2.2.jar,commons-io-2.4.jar)的更多相关文章

  1. wangEditor ie9 表单上传图片

    wangEditor ie9 表单上传图片  弹框无法消失  var resultText = $.trim(iframeWindow.document.body.innerHTML); result ...

  2. JSP的表单处理

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/form-processing.html: 当需要从浏览器向Web服务器传递一些信息并最终将信息返回到后端 ...

  3. 在jsp提交表单的参数封装到一个方法里

    建议去看一下孤傲苍狼写的Servlet+JSP+JavaBean开发模式(http://www.cnblogs.com/xdp-gacl/p/3902537.html), 最好把他JavaWeb学习总 ...

  4. JSP 用户表单的简单实现

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  5. JSP将表单提交并在本页中显示

    代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8& ...

  6. jsp注册页面验证,easyui的jsp+js表单验证

    1.1下面的代码是写在Js里面的,就直接写进去不用什么其他东西,这样一个表单验证就好了(1.2图) $.extend($.fn.validatebox.defaults.rules, { phone: ...

  7. 摒弃FORM表单上传图片,异步批量上传照片

    之前作图像处理一直在用form表单做图片数据传输, 个人感觉low到爆炸而且用户体验极差,现在介绍一个一部批量上传图片的小技巧,忘帮助他人的同时也警醒自己在代码的编写时不要只顾着方便,也要考虑代码的健 ...

  8. Ajax在jQuery中的应用 (4)向jsp提交表单数据

    ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率. 下面就介绍一下大致的开发步骤. 工具/原料 本文中使用的是 jquery-1.3.2.min.js 方法/步 ...

  9. 【转】JSP提交表单

    设计表单页面,它是静态页面,使用HTML编写,而且使用了JavaScript脚本语言来验证填写表单数据,表单页面为form.htm,代码如下: <html><head>< ...

随机推荐

  1. Java学习之路(转)

    我也搞了几年JAVA了.因为一向懒惰,没有成为大牛,仅仅是一普通程序员,不爱玩社交站点.不爱玩微博,只有喜欢百度贴吧,潜水非常久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照 ...

  2. [leetcode]Insertion Sort List @ Python

    原题地址:http://oj.leetcode.com/problems/insertion-sort-list/ 题意:对链表进行插入排序. 解题思路:首先来对插入排序有一个直观的认识,来自维基百科 ...

  3. 你需要知道的、有用的 Python 功能和特点

    在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性.一些可以说是非常有用,但却没有充分利用.考虑到这一点,我编辑了一些的你应该了解的Pyghon功能特色. 带任意数量参数的函数 你 ...

  4. OpenGL视图--gluPerspective glOrtho glFrustum gluLookAt

    void gluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar ) near 和 far 决定了投 ...

  5. Android下 使用百度地图sdk

    百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口.可以使用该套 SDK开发适用于Android系 ...

  6. 手机WiFi万能钥匙查看破解的password和手机查询命令收集

    手机须要网络利用WiFi万能钥匙破解了WIFI的password.手机就能够上网了,但假设想在电脑上使用手机破解的Wifi热点上网就须要password,此时须要知道手机破解的password,WiF ...

  7. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

  8. 历尽折腾,终于把Unity3D 的demo发布安卓啦(问题)

    只要碰到两个比较蛋疼的问题: 1. Error generating final archive: Debug certificate expired on **** 从字面了解,是由于Debug证书 ...

  9. jquery设置按钮disabled

    通常我们设置disabled属性会用attr和removeAttr,但是今天我们不讨论这个方式 我们讨论是的prop jQuery的定义是:获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性 ...

  10. 免费素材-Helium (AI, EPS, SVG, Icon Font)

    在线演示 在线演示 本地下载 我很高兴和大家分享今天的素材-Helium.它有多种格式可供下载(AI, EPS, SVG, Icon Font) ,内容包含曲线.飞行器.上传下载.喇叭等类型.