zoukankan      html  css  js  c++  java
  • Servlet文件上传

    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);

        }

    }

  • 相关阅读:
    Python基础06 循环
    Python基础04 运算
    Python基础02 基本数据类型
    Python基础03 序列
    C++ ------ 引用
    C++ ------ 互斥锁、原子操作的性能测试
    Qt ------ 断开某对信号与槽的connect
    5种网络通信设计模型(也称IO模型)
    Qt ------ 主事件循环与 QEventLoop
    Qt ------ 再论事件循环
  • 原文地址:https://www.cnblogs.com/bornteam/p/4692310.html
Copyright © 2011-2022 走看看