upload.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>上传图片的表单页面</title>
  6. <meta http-equiv="pragma" content="no-cache">
  7. <meta http-equiv="cache-control" content="no-cache">
  8. <meta http-equiv="expires" content="0">
  9. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  10. <meta http-equiv="description" content="This is my page">
  11. </head>
  12. <body>
  13. <form action="uploaddo.jsp" method="post" enctype="multipart/form-data">
  14. <table>
  15. <tr>
  16. <td>姓名:</td>
  17. <td><input type="text" name="txtUserName" /></td>
  18. </tr>
  19. <tr>
  20. <td>性别:</td>
  21. <td>
  22. <input type="radio" name="rdoSex" value="男" checked="checked"/>
  23. <input type="radio" name="rdoSex" value="女"/>
  24. </td>
  25. </tr>
  26. <tr>
  27. <td>教育:</td>
  28. <td>
  29. <select name="selEdu">
  30. <option value="小学">小学</option>
  31. <option value="中学">中学</option>
  32. <option value="大学">大学</option>
  33. </select>
  34. </td>
  35. </tr>
  36. <tr>
  37. <td>爱好:</td>
  38. <td>
  39. <input type="checkbox" name="rdoHibby" value="篮球"/>篮球
  40. <input type="checkbox" name="rdoHibby" value="足球"/>足球
  41. <input type="checkbox" name="rdoHibby" value="排球"/>排球
  42. </td>
  43. </tr>
  44. <tr>
  45. <td>图片:</td>
  46. <td><input type="file" name="txtPhoto" /></td>
  47. </tr>
  48. <tr>
  49. <td colspan="2">
  50. <input type="submit" value="提交"/>
  51. </td>
  52. </tr>
  53. </table>
  54. </form>
  55. </body>
  56. </html>

uploaddo.jsp

  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <%@ page import="java.util.*,java.io.*,java.lang.*" %>
  3. <%@ page import="org.apache.commons.fileupload.*"%>
  4. <%@ page import="org.apache.commons.fileupload.disk.*"%>
  5. <%@ page import="org.apache.commons.fileupload.servlet.*"%>
  6. <%
  7. HashMap<String,ArrayList<String>> mapField =new HashMap<String,ArrayList<String>>();
  8. HashMap<String,ArrayList<String>> mapFile =new HashMap<String,ArrayList<String>>();
  9. request.setCharacterEncoding("utf-8");
  10. response.setCharacterEncoding("utf-8");
  11. boolean isMultipart = ServletFileUpload.isMultipartContent(request);
  12. if (isMultipart) {
  13. try {
  14. DiskFileItemFactory factory = new DiskFileItemFactory();
  15. factory.setSizeThreshold(1024 * 4);//设置缓冲区4kb
  16. String bufferFilePath = request.getSession().getServletContext().getRealPath("temp/buffer");
  17. factory.setRepository(new File(bufferFilePath));//设置上传文件用到临时文件存放路径
  18. ServletFileUpload upload = new ServletFileUpload(factory);
  19. upload.setFileSizeMax(1024 * 1024 * 3);//设置单个文件的最大限制
  20. List<FileItem> items = upload.parseRequest(request);
  21. Iterator<FileItem> iter = items.iterator();
  22. while (iter.hasNext()) {
  23. FileItem item = iter.next();
  24. String fieldName = item.getFieldName();//获取name
  25. if (item.isFormField()) {
  26. //如果是表单字段
  27. String fieldValue = item.getString("utf-8");//获取value
  28. ArrayList<String> list = null;
  29. if(mapField.containsKey(fieldName)){
  30. list = mapField.get(fieldName);
  31. }else{
  32. list = new ArrayList<String>();
  33. }
  34. list.add(fieldValue);
  35. mapField.put(fieldName, list);
  36. } else {
  37. //如果是上传控件
  38. String uploadFileName = item.getName();//读取上传图片文件名称
  39. if (uploadFileName != null && !uploadFileName.equals("")) {
  40. String uuid = UUID.randomUUID().toString();
  41. String fileType = uploadFileName.substring(uploadFileName.lastIndexOf("."));
  42. String fileName = "upload/" + uuid + fileType;
  43. String uploadFilePath = request.getSession().getServletContext().getRealPath("/");
  44. File saveFile = new File(uploadFilePath, fileName);
  45. item.write(saveFile);//保存上传图片到服务器
  46. ArrayList<String> list = null;
  47. if(mapFile.containsKey(fieldName)){
  48. list = mapFile.get(fieldName);
  49. }else{
  50. list = new ArrayList<String>();
  51. }
  52. list.add(fileName);
  53. mapFile.put(fieldName, list);
  54. }
  55. }
  56. }
  57. } catch (FileUploadBase.FileSizeLimitExceededException ex) {
  58. out.print("上传文件失败,文件超过3M。");
  59. } catch (FileUploadBase.IOFileUploadException ex) {
  60. out.print("设置上传文件用到临时文件存放路径不存在。");
  61. } catch (Exception ex) {
  62. out.print(ex);
  63. }
  64. }
  65. %>
  66. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  67. <html>
  68. <head>
  69. <title>处理上传图片的表单页面</title>
  70. <meta http-equiv="pragma" content="no-cache">
  71. <meta http-equiv="cache-control" content="no-cache">
  72. <meta http-equiv="expires" content="0">
  73. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  74. <meta http-equiv="description" content="This is my page">
  75. </head>
  76. <body>
  77. <%
  78. for(Map.Entry<String,ArrayList<String>> field : mapField.entrySet())
  79. {
  80. String key = field.getKey();
  81. List<String> values = field.getValue();
  82. StringBuffer sb = new StringBuffer();
  83. for(String value : values){
  84. sb.append(value);
  85. sb.append(",");
  86. }
  87. String value = sb.toString();
  88. out.print(String.format("name:%s,&nbsp;&nbsp;&nbsp;&nbsp;value:%s<br/>",key,value));
  89. }
  90. %>
  91. <hr/>
  92. <%
  93. for(ArrayList<String> values : mapFile.values())
  94. {
  95. for(String value : values){
  96. out.print(String.format("<img src='%s' style='width:300px;heigth:300px'/><br/>",value));
  97. }
  98. }
  99. %>
  100. </body>
  101. </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. 数据库实例: STOREBOOK > 表空间 > 编辑 表空间: UNDOTBS1

    ylbtech-Oracle:数据库实例: STOREBOOK  >  表空间  >  编辑 表空间: UNDOTBS1 表空间  >  编辑 表空间: UNDOTBS1 1. 一般 ...

  2. 使用swipemenulistview实现列表的左右滑动

    今天从网上找到一个第三方控件swipemenulistview,封装好的一个控件,可以实现列表的左右滑动,模仿qq的列表效果 下载地址为:https://github.com/baoyongzhang ...

  3. dxg:TreeListView.RowDecorationTemplate

    <dxg:TreeListView.RowDecorationTemplate> <ControlTemplate TargetType="ContentControl&q ...

  4. [转]How to query posts filtered by custom field values

    Description It is often necessary to query the database for a list of posts based on a custom field ...

  5. CoCreateInstance(转)

      CoCreateInstance  创建组件的最简单的方法是使用CoCreateInstance函数. 在COM库中包含一个用于创建组件的名为CoCreateInstance的函数.此函数需要一个 ...

  6. java中boolean与字符串或者数字1和0的转换

    mysql有个字段是bit,只存储1和0,是二进制存储,那么在java的dao层如何映射成boolean呢 @Column(name="is_standard") private ...

  7. Java中看今天是星期几,礼拜几

    下面这段代码就能达到目的: Date today = new Date();        Calendar c=Calendar.getInstance();        c.setTime(to ...

  8. HIVE部署安装(笔记)

    1.下载hive:wget http://mirrors.cnnic.cn/apache/hive/hive-0.12.0/hive-0.12.0.tar.gz2.解压hive安装文件 tar -zv ...

  9. java中的数据加密

    记录 一.java中的数据加密 Java提供的安全模型和API 加密基础知识 使用JAVA实现加密 二.Java提供的安全模型和API 2.1.Java语言本身的安全性 自动内存管理:对于生成的对象在 ...

  10. Java的类名与文件名必须一致(转)

    原文:http://blog.csdn.net/shaoxiaoning/article/details/40424087 1.Java保存的文件名必须与类名一致: 2.如果文件中只有一个类,文件名必 ...