package com.food.servlet;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private File uploadPath;
private File tempPath;
public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
//判断是否是多数据段提交格式
boolean isMultipart = ServletFileUpload.isMultipartContent(req);
if(isMultipart){
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置文件的下限
factory.setSizeThreshold(4096);
// 设置中转目录
factory.setRepository(tempPath);
ServletFileUpload upload = new ServletFileUpload(factory);
//设置上传文件的上限
upload.setSizeMax(1000000 * 20);
try {
List> fileItems = upload.parseRequest(req);
String itemNo = "";
for (Iterator> iter = fileItems.iterator(); iter.hasNext();) {
FileItem item = (FileItem) iter.next();
是普通的表单输入域
//if(item.isFormField()) {
//if ("ceshi".equals(item.getFieldName())) {
//itemNo = item.getString();
//System.out.println("这是我的测试-------" + item.getFieldName());
//}
//}
//是否为input="type"输入域
if (!item.isFormField()) {
String fileName = item.getName();
long size = item.getSize();
if ((fileName == null || fileName.equals("")) && size == 0) {
continue;
}
//截取字符串 如:C:\WINDOWS\Debug\PASSWD.LOG
fileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
item.write(new File(uploadPath, fileName));
if(fileName.contains(".gif")){
req.setAttribute("upload", "yes");
req.setAttribute("imageName", fileName);
}else if(!"".equals(fileName)){
req.setAttribute("upload", "err");
}
req.getRequestDispatcher("seller.jsp").forward(req, res);
}
}
//res.sendRedirect(req.getContextPath() + "/index.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doPost(req, res);
}
public void init() throws ServletException {
uploadPath = new File(getServletContext().getRealPath("upload"));
System.out.println("uploadPath=====" + uploadPath);
//如果目录不存在
if (!uploadPath.exists()) {
//创建目录
uploadPath.mkdir();
}
//临时目录
tempPath = new File(getServletContext().getRealPath("temp"));
if (!tempPath.exists()) {
tempPath.mkdir();
}
}
}