package ywzn.by.scity.servlet;

 

import javax.servlet.http.HttpServlet;

 

 

 

import java.io.File;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

import java.util.UUID;

 

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.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.log4j.Logger;

 

import xjgz.by.scity.listener.initServlet;

import ywzn.by.scity.service.dao.IUploadDao;

import ywzn.by.scity.service.dao.impl.UploadDaoImpl;

import ywzn.by.scity.service.pojo.UploadPojo;

 

@SuppressWarnings("serial")

public class Upload extends HttpServlet {

     

      private Logger log = Logger.getLogger(this.getClass());

 

    @SuppressWarnings("unchecked")

    public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        String savePath = initServlet.SAVEPATH;

        String caseid = request.getParameter("caseid");

        String flowid = request.getParameter("flowid");

 

        log.info("##########################[caseid]:"+caseid);

        log.info("##########################[flowid]:"+flowid);

       

        IUploadDao iUpload = new UploadDaoImpl();

           UploadPojo uploadPojo = new UploadPojo();

          

        log.info("##########################[savePath]:"+savePath);

       

        if (caseid==null)

              caseid="1";

        if (flowid==null)

              flowid = "Character_1";

 

           savePath = savePath + "\\uploads\\"+caseid+"\\";

       

        File f1 = new File(savePath);

        if (!f1.exists()) {

            f1.mkdirs();

        }

        DiskFileItemFactory fac = new DiskFileItemFactory();

        ServletFileUpload upload = new ServletFileUpload(fac);

        upload.setHeaderEncoding("utf-8");

        List fileList = null;

        try {

            fileList = upload.parseRequest(request);

        } catch (FileUploadException ex) {

            return;

        }

        Iterator<FileItem> it = fileList.iterator();

        String name = "";

        String extName = "";

        while (it.hasNext()) {

            FileItem item = it.next();

            if (!item.isFormField()) {

                  name = item.getName();

                uploadPojo.setRealName(name);

                long size = item.getSize();

                String type = item.getContentType();

                log.info(size + " " + type);               

                if (name == null || name.trim().equals("")) {

                    continue;

                }

               

                //扩展名格式: 

                if (name.lastIndexOf(".") >= 0) {

                    extName = name.substring(name.lastIndexOf("."));

                }

               

                log.info("[file name]:"+name);

                File file = null;

                do {

                    //生成文件名:

                    //name = UUID.randomUUID().toString();                    

                    //file = new File(savePath + name + extName);

                     

                      file = new File(savePath + name);

                } while (file.exists());

                //File saveFile = new File(savePath + name + extName);

                File saveFile = new File(savePath + name);

                try {

                    item.write(saveFile);

                      

                       uploadPojo.setCaseID(caseid);

                       uploadPojo.setFlowID(flowid);

                       uploadPojo.setRealPath(savePath);

                      

                       uploadPojo.setUploadPath(caseid+"\\");

                       uploadPojo.setUploadName(uploadPojo.getRealName());

                       uploadPojo.setFileType("1");

                      

                    iUpload.insertUpload(uploadPojo);

                } catch (Exception e) {

                   log.error(e.getMessage(),e);

                }

            }

        }

        response.getWriter().print(name + extName);

    }

   

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

          log.info("doGet...");

          doPost(request,response);

    }

}

 

posted on 2015-07-31 15:36  新生团队  阅读(210)  评论(0编辑  收藏  举报