zoukankan      html  css  js  c++  java
  • 用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

  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/john69-/p/5609823.html
Copyright © 2011-2022 走看看