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