package com.jaeyi;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String tempPath = "d:upload emp";//臨時(shí)目錄
private String path = "d:upload";//上傳目錄
public UploadServlet(){
super();
}
public void destroy() {
super.destroy();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
/**
* The doGet method of the servlet.
*
* 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 {
response.setCharacterEncoding("GBK");
request.setCharacterEncoding("GBK");
DiskFileItemFactory fac = new DiskFileItemFactory();
fac.setSizeThreshold(1024);
fac.setRepository(new File(tempPath));
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setFileSizeMax(1024*1024*5);
try {
List fileList = upload.parseRequest(request);
Iterator iter = fileList.iterator();
while(iter.hasNext()){
FileItem fileItem = (FileItem)iter.next();
if(!fileItem.isFormField()){
String name = fileItem.getName();
String fileSize = new Long(fileItem.getSize()).toString();
if(name == null || name.equals("") || fileSize.equals("0"))
continue;
name = name.substring(name.lastIndexOf("")+1);
File saveFile = new File(new File(path),name);
fileItem.write(saveFile);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
}
public void init() throws ServletException {
if(!new File(tempPath).exists()){
new File(tempPath).mkdirs();
}
if(!new File(path).exists()){
new File(path).mkdirs();
}
}
}