Servlet 知识点(三) -- Servlet 的文件上传功能的表单获取问题(2)
来源:互联网 发布:nginx与phpfpm 编辑:程序博客网 时间:2024/06/07 19:46
上周用 smartUpload 因为性能的关系被无情抛弃了 , 百度了一波之后采用了 common-io 和 common-lang 的上传方式 . 对于表单传值 , 他们也有很好的解决办法
common-io: http://download.csdn.net/detail/jacxuan/9882524
//判断表单是否二进制流提交数据 boolean isMultipart = ServletFileUpload.isMultipartContent(request); if(!isMultipart){ throw new RuntimeException("请检查您的表单的enctype属性,确定是multipart/*"); } DiskFileItemFactory dfif = new DiskFileItemFactory(); ServletFileUpload parser = new ServletFileUpload(dfif); parser.setFileSizeMax(3*1024*1024);//设置单个文件上传的大小 parser.setSizeMax(6*1024*1024);//多文件上传时总大小限制 //文件根目录 String uploadPath = fileRoot + File.separator; //保存表单数据,以便在之后取出 Map<String,String> map = new HashMap<String, String>(); try { List<?> items = parser.parseRequest(request); Iterator iter = items.iterator(); if (items != null && items.size() > 0) { // 迭代表单数据 while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { //如果是普通表单字段 String name = item.getFieldName(); //获得表单name字段名称 String value = item.getString(); //获得表单name字段名称对应的值 map.put(name, value); log.info("name={},value={}",name,value); } else if (!item.isFormField()&&item.getName()!=null) { String fileName = new File(item.getName()).getName(); if(fileName == null || "".equals(fileName)){ continue; } String filePath = uploadPath + fileName; map.put("filePath",filePath); File storeFile = new File(filePath); // 在控制台输出文件的上传路径 System.out.println(filePath); // 如果文件不存在则保存到指定文件夹否则直接返回 if(!storeFile.exists()) item.write(storeFile); request.setAttribute("message", "文件上传成功!"); continue; } } } } catch (Exception e) { request.setAttribute("message","错误信息: " + e.getMessage()); }
jsp
<form action="http://f6fc9999.ngrok.io/souvx/sendMsgServlet" method="post" enctype="multipart/form-data"> <div id="sendOptionDiv" class="sendOptionDiv"> <select name="sendOption" id="sendOption"> <option selected="selected">===群发方式===</option> <option value="1">发送至所有人</option> <option value="2">发送至指定人群</option> </select> </div> <div id="openDiv"> <select name="cOpenid" id="cOpenid" multiple="multiple" size="4"> </select> </div> <div id="chooseStyleDiv"> <select name="chooseStyle" id="chooseStyle"> <option selected="selected">===群发类型===</option> <option value="1">发送文本消息</option> <option value="2">发送媒体消息</option> <option value="3">发送图文消息</option> </select> </div> <div id="contentId"> <input type="text" value="" name="content" id="content" /> </div> <div id="mediaId"> <input type="file" name="mytext" id="mytext" /> </div> <div id="newsDiv"> <ul> <li>作者:<input type="text" value="" name="author" id="author" /></li> <li>标题:<input type="text" value="" name="title" id="title" /></li> <li>链接:<input type="text" value="" name="content_source_url" id="content_source_url" /></li> <li>内容描述<input type="text" value="" name="digest" id="digest" /> </li> <li>是否在重复时发送:<input type="text" value="" name="show_cover_pic" id="show_cover_pic" /></li> </ul> </div> <input type="submit" value="提交" /> </form>
阅读全文
1 1
- Servlet 知识点(三) -- Servlet 的文件上传功能的表单获取问题(2)
- Servlet 知识点(三) -- Servlet 的文件上传功能导致后台取值失败
- servlet实现form表单的文件上传
- Servlet 通过表单上传文件和获取表单数据的最简单方式
- servlet简单的文件上传功能
- Servlet文件上传功能的实现
- Servlet文件上传功能的实现!
- Servlet实现多文件上传的功能
- Servlet 3.0 的文件上传功能
- jsp+servlet实现文件的上传功能
- Servlet文件上传知识点
- servlet的上传文件
- Servlet的文件上传
- 文件的上传servlet
- jsp、servlet上传文件遇到的问题
- Servlet---表单参数接收/简单的文件上传
- JSP + Servlet 实现的文件上传到服务器的功能
- Servlet+Jsp实现图片或文件的上传功能
- Android组件service_基础(四)
- 11.2.0.4升级到12.2.0.1详细步骤
- Fillder拦截HTTP请求并修改数据
- Android监听Home键和Recent Apps键
- 2017--Android常用框架集合
- Servlet 知识点(三) -- Servlet 的文件上传功能的表单获取问题(2)
- Tomcat启动超时问题Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
- Oracle如何创建用户,表空间
- Hightway Networks学习笔记
- Java内存分配及垃圾回收机制
- Codeforces820A Mister B and Book Reading
- JPA之@GeneratedValue注解
- linux之 crontab 定时任务
- Java多线程看着一篇足够了!