文件上传

java 杨鹏 12:12:06
package com.yunhe.auction.web;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class AuctionServlet extends HttpServlet {

    /**
     * Constructor of the object.
     */
    public AuctionServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        this.doPost(request, response);
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        String opr=request.getParameter("opr");
        if("add".equals(opr)){
            String webpath=request.getSession().getServletContext().getRealPath("upload");//获取上传到服务器的路径
            File savepath=new File(webpath);
            if(!savepath.exists()){
                savepath.mkdirs();
            }
            out.println("保存文件路径:"+webpath+"</br>"+"</br>");
            FileItemFactory factory=new DiskFileItemFactory();//创建FileItemFactory对象
            ServletFileUpload fileUpload=new ServletFileUpload(factory);//创建ServletFileUpload对象
            //fileUpload.setSizeMax(1024*30);//设置单个文件的最大限制 
            
            List<FileItem> list=null;
            try {
                list = fileUpload.parseRequest(request);
            } catch (FileUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }//解析form表单中所有文件
            
            for(FileItem item:list){
                if(item.isFormField()){
                    if(item.getFieldName().equals("auctionname")){
                        String auctionname=item.getString("utf-8");
                        //out.println(item.getString("utf-8")+" 正在上传文件!"+"</br>"+"</br>");
                    }
                    if(item.getFieldName().equals("auctionstartprice")){
                        String auctionstartprice=item.getString("utf-8");
                    }
                    if(item.getFieldName().equals("auctionupset")){
                        String auctionupset=item.getString("utf-8");
                    }
                    if(item.getFieldName().equals("auctionstarttime")){
                        String auctionstarttime=item.getString("utf-8");
                    }
                    if(item.getFieldName().equals("auctionendtime")){
                        String auctionendtime=item.getString("utf-8");
                    }
                    if(item.getFieldName().equals("auctiondesc")){
                        String auctiondesc=item.getString("utf-8");
                    }
                }else{
                    String filename=item.getName();//源文件 完整路径
                    //out.println(filename+"</br>"+"</br>");
                    //List<String> fileType=Arrays.asList("gif","bmp","jpg","txt");
                    String ext=filename.substring(filename.lastIndexOf(".")+1);
                    //if(fileType.contains(ext)){
                        
                        if(filename!=null){
                            File sourcefile=new File(filename);//保存文件
                            String name=sourcefile.getName();//得到文件逻辑名
                            //out.println(name);
                            File file=new File(savepath,name);
                            
                            try {
                                item.write(file);
                            } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            out.println("上传成功!");
                        }else{out.println("上传失败!");};
                    //}else{out.println("上传文件失败,类型只能是:gif、bmp、jpg、txt");}
                }
            }
                    
        }
        out.flush();
        out.close();
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

 

posted on 2016-06-02 13:07  如风105  阅读(149)  评论(0编辑  收藏  举报

导航