package com.horizon.action;
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;/**
* Servlet implementation class UpFileServlet*/
public classUpFileServlet extends HttpServlet {private static final long serialVersionUID = 1L;/**
* @see HttpServlet#HttpServlet()*/
publicUpFileServlet() {
super();//TODO Auto-generated constructor stub
}/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)*/@SuppressWarnings({"unchecked", "rawtypes"})protected voiddoGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {//获得参数
String timestamp = request.getParameter("timestamp");
String token= request.getParameter("token");
System.out.println(timestamp);
System.out.println(token);//获得文件
String savePath = this.getServletConfig().getServletContext()
.getRealPath("");
savePath= savePath + "/uploads/";
File f1= newFile(savePath);
System.out.println(savePath);if (!f1.exists()) {
f1.mkdirs();
}
DiskFileItemFactory fac= newDiskFileItemFactory();
ServletFileUpload upload= newServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList= null;try{
fileList=upload.parseRequest(request);
}catch(FileUploadException ex) {
System.out.println(ex.getMessage());return;
}
Iterator it =fileList.iterator();
String name= "";
String extName= "";while(it.hasNext()) {
FileItem item=it.next();if (!item.isFormField()) {
name=item.getName();long size =item.getSize();
String type=item.getContentType();
System.out.println(size + " " +type);if (name == null || name.trim().equals("")) {continue;
}//扩展名格式:
if (name.lastIndexOf(".") >= 0) {
extName= name.substring(name.lastIndexOf("."));
}
File file= null;do{//生成文件名:
name =UUID.randomUUID().toString();
file= new File(savePath + name +extName);
}while(file.exists());
File saveFile= new File(savePath + name +extName);try{
item.write(saveFile);
}catch(Exception e) {
e.printStackTrace();
}
}
}
response.getWriter().print(name+extName);
}/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)*/
protected voiddoPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}