JavaEE6-Servlet3.0上传

服务端:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package me.ypqiao.javaee6sample.listener;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 *
 * @author ypqiao
 */
@MultipartConfig(location = "c:/upload")
@WebServlet(name = "UploadServlet", urlPatterns = {"/UploadServlet"})
public class UploadServlet extends HttpServlet {

    private static Log log = LogFactory.getLog(UploadServlet.class);
    
    /**
     * Process the upload request,
     * 
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException 
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");;
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            
           Collection<Part> parts = request.getParts();
           
           for(Part part : parts){
               
               // print file info
               out.print("Part Name: "+part.getName()+"<br/>");
               out.print("File Name: "+getFileName(part)+"<br/>");
               out.print("File Size: "+part.getSize()+"<br/>");
               
               // save the file uploaded
               part.write(getFileName(part));
               
               // delete the tmp file
               part.delete();
               
           }
            
        } finally {          
            out.close();
        }
    }

     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
    
   /**
    * get file name from part header
    * the Part.getName() is for get part name instead,not file name
    * 
    * @param part
    * @return 
    */ 
   private String getFileName( Part part ){
       
       if( part == null ){
           throw new RuntimeException(" invalid part ");
       }
       
       for( String item :part.getHeader("content-disposition").
               trim().split(";")){
           
           item = item.trim();
           if(item.startsWith("filename"))
           return item.substring(item.indexOf("=")+1).replace("\"", "");
           
       }
       
       return null;
   }
   
   
  
}

页面:

<%-- 
    Document   : upuload.jsp
    Created on : Aug 15, 2013, 7:46:02 PM
    Author     : issuser
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>File Upload</title>
    </head>
    <body>
        <h3>File Upload</h3>
        <hr/>
        
        <form action="UploadServlet" method="post" enctype="multipart/form-data">
         File: <input type="file" name="file"/><input type="submit"/>
            
            
        </form>
        
    </body>
</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值