• 用Commons-FileUpload组件实现文件上传


    在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

  • 相关阅读:
    Linux常用命令
    Spring Boot☞ 多数据源配置(二):Spring-data-jpa
    好用的Markdown编辑器一览
    Spring Boot☞ 使用Spring-data-jpa简化数据访问层
    谈谈Spring 注入properties文件总结
    Spring Boot☞ 统一异常处理
    Spring Boot☞ 使用velocity渲染web视图
    Spring Boot☞ 使用freemarker模板引擎渲染web视图
    静态联编与动态联编
    C++ 模板元编程 学习笔记
  • 原文地址:https://www.cnblogs.com/john69-/p/5609823.html
Copyright © 2020-2023  润新知