在1.jsp页面选取文件 传递给recives页面进行解析并将文件进行上传操作
1.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 </head> 12 13 <body> 14 <form action="<%=path %>/Filedemo/recives.jsp" enctype="multipart/form-data" method="post"> 15 <p>姓名<input type="text" name="user"></p> 16 17 <p>选择图片:<input type="file" name="nfile"/></p> 18 <p><input type="submit" value="提交"/></p> 19 20 </form> 21 </body> 22 </html>
recives.jsp
<%@page import="java.io.File"%> <%@page import="org.apache.commons.fileupload.FileItem"%> <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@page import="org.apache.commons.fileupload.FileItemFactory"%> <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <% request.setCharacterEncoding("utf-8"); String uploadFileName=""; //上传的文件名 String filedName=""; //表单字段元素的name属性值 boolean isMultipart= ServletFileUpload.isMultipartContent(request); //请求信息中的内容是否是multipart类型 //上传文件的存储路径(服务器文件系统上的绝对文件路径) String uploadFilepath= request.getSession().getServletContext().getRealPath("/WEB-INF/upload/"); if(isMultipart){ FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload= new ServletFileUpload(factory); //解析器 try{ //解析form表单中所有文件 List<FileItem> items= upload.parseRequest(request); Iterator<FileItem> iter= items.iterator(); //每个iter代表每一个表单元素 while(iter.hasNext()){ //依次处理每个文件 FileItem item= iter.next(); //每一个iter代表每一个表单元素 if(item.isFormField()){ //普通表单字段 filedName= item.getFieldName(); //表单字段的name属性 if(filedName.equals("user")){ //输出表单阻断的值 out.print(item.getString("utf-8")+"上传了文件。<br/>"); } }else{ //文件表单字段 String fileName=item.getName(); //文件名字 if(fileName!=null && !fileName.equals("")){ File fullFile=new File(item.getName()); File saveFile = new File(uploadFilepath,fullFile.getName()); item.write(saveFile); uploadFileName=fullFile.getName(); //上传文件名 out.print("上传成功后的文件名是:"+uploadFileName+"<br/>上传后文件地址是:"+saveFile); } } } }catch(Exception e){ e.printStackTrace(); } } %>
相关代码文件:链接:http://pan.baidu.com/s/1cl0T0y 密码:0kj3