servlet 上传文件

来源:互联网 发布:excel跨表数据有效性 编辑:程序博客网 时间:2024/05/22 01:57

commons-io.jar和commons-fileupload.jar是必不可少的

 <form action="upfileservlet" method="post" enctype="multipart/form-data">
      <input type="file" value="" name="filename">
      <input type="submit" value="上传"/>
      <
    </form>

package com.li;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import java.util.Iterator;
import java.util.List;

import javax.servlet.*;
import javax.servlet.http.*;

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 UpFileServlet extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
    private ServletContext sc=null;
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        //savePath=config.getInitParameter("savePath");
          sc=config.getServletContext();
          super.init();
    }

    /**Process the HTTP doGet request.
     */
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException,
                                                           IOException {
    }

    /**Process the HTTP doPost request.
     */
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response) throws ServletException,
                                                            IOException {
        response.setContentType(CONTENT_TYPE);
        response.setCharacterEncoding("UTF-8");
         DiskFileItemFactory factory=new DiskFileItemFactory();
         ServletFileUpload file=new ServletFileUpload(factory);
        try {
         List lst=file.parseRequest(request);
         Iterator it=lst.iterator();
         while(it.hasNext()){
          FileItem fileItem=(FileItem)it.next();
          if(fileItem.isFormField()){
           System.out.println("表单数据的 名称:"+fileItem.getFieldName()+
             "   表单数据的内容"+fileItem.getString("UTF-8"));
          }
          else{
           if(fileItem.getName()!=null&&!fileItem.getName().equals("")){
            System.out.println("上传文件的名称:"+fileItem.getName());
            System.out.println("上传文件的大小:"+fileItem.getSize());
            System.out.println("上传文件的类型:"+fileItem.getContentType());
            File tempFile=new File(fileItem.getName());
            File dir=new File(sc.getResource("/").getPath()+"savePath");
               if(!dir.exists()){
                   dir.mkdir();
               }
            File realFile=new File(dir,tempFile.getName());
               if(!realFile.exists()){
                   realFile.createNewFile();
               }
            try {
             fileItem.write(realFile);
             request.setAttribute("upLoad message","上传成功");
            } catch (Exception e) {
             request.setAttribute("upLoad message","上传失败");
             e.printStackTrace();
            }
           }
          }
         }
        } catch (FileUploadException e) {
         request.setAttribute("upLoad message","上传失败");
         e.printStackTrace();
        }
 }
   
}

 

0 0
原创粉丝点击