javaweb 简单的文件上传动态添加上传文件数量[从学习到工作(六)]
2014-06-30 21:27
489 查看
1.jsp页面主要代码块
3.上传成功页面展示
<script type="text/javascript" src="<%=basePath%>js/jquery.min.js"></script>
<form action="<%=basePath%>upload" method="post" enctype="multipart/form-data"> File:<input type="file" name="file"/> <input type="button" id="add" value="add"/><br/> <div></div> <input type="submit" value="submit"/> </form> <script type="text/javascript"> $(function() { $('#add').click(function() { var random = Math.random()*10; var file="File:<input type='file' name='file"+random+"'/><br/>"; $("div").append(file); }); }); </script>2.提交到后台servlet 处理
<pre name="code" class="java">package com.zenglx.test.servlet; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); //文件保存路径 String path = getServletContext().getRealPath("/up"); //在硬盘上设立一个临时保存地方 DiskFileItemFactory dff = new DiskFileItemFactory(); dff.setSizeThreshold(1024*1024); dff.setRepository(new File("f:/a")); //创建文件上传的核心类 ServletFileUpload upload = new ServletFileUpload(dff); List<Map<String,String>> list = new ArrayList<Map<String,String>>(); try { //解析request获得文件条目 List<FileItem> fileItems = upload.parseRequest(request); //循环读取上传的文件信息 for(FileItem fileItem:fileItems) { Map<String,String> map = new HashMap<String,String>(); String fileName = fileItem.getName(); fileName = fileName.substring(fileName.lastIndexOf("\\")+1); String size = fileItem.getSize()+"byte"; String fileType = fileItem.getContentType(); //获得文件后缀名 String extName = fileName.substring(fileName.lastIndexOf("."));//.jpg //UUID String uuid = UUID.randomUUID().toString().replace("-", ""); //得到新的文件名 String newName = uuid+extName; //创建保存的文件 File dest = new File(path+File.separator+newName); //将文件保存到目标地址 //方式一 /*InputStream is = fileItem.getInputStream(); FileUtils.copyInputStreamToFile(is, dest); */ //方式二 fileItem.write(dest); //删除临时文件 fileItem.delete(); map.put("fileName", fileName); map.put("fileType",fileType); map.put("size",size); list.add(map); } request.setAttribute("list", list); request.getRequestDispatcher("/success.jsp").forward(request, response); } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
3.上传成功页面展示
<c:forEach items="${list}" var="info"> 文件名称:<c:out value="${info.fileName}" /><br/> 文件类型:<c:out value="${info.fileType}"/><br/> 文件大小:<c:out value="${info.size}"></c:out><br/><br/> </c:forEach>
相关文章推荐
- Java_JSP2_Servlet3_Servlet文件上传、Servlet异步处理、Servlet web模块简单示例;
- Java Web 学习笔记之一:服务器获取表单上传的文件
- JavaWeb -- Struts2,对比, 简单表单提交,校验,防重复提交, 文件上传
- Javaweb 学习笔记之文件上传和下载-01
- Java动态显示文件上传进度的简单实现
- Java动态显示文件上传进度的简单实现 - java2000.net的专栏 - CSDNBlog
- java_web 学习记录(六):文件上传和下载
- 学习总结之JavaWeb实现文件上传
- Java动态显示文件上传进度的简单实现
- java Web && 文件上传--简单实现
- Java Web 学习笔记之三: HttpURLConnection 模拟表单上传文件
- 使用webUploader上传文件时前台添加自定义参数(java后台获取)
- Struts实现多个文件上传(动态添加数量、前台仿163邮箱)
- Java动态显示文件上传进度的简单实现
- JavaWeb项目实现上传文件动态显示进度百分比
- Java web 中实现简单的文件上传与下载——学习笔记
- Java动态显示文件上传进度的简单实现
- JavaWeb -- Struts2,对比, 简单表单提交,校验,防重复提交, 文件上传
- javaweb Filter在工作中的简单应用[从学习到工作(三)]
- web文件上传一学习记录 (简单的web浏览器可读文件的上传,servlet 文件上传)