package com.johnson.servlet;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import com.johnson.tools.UploadUtil;
/**
* created by johnson on 2016/5/11
* @author johnson
* @version 1.0
* @description 尝试文件上传功能的servlet,需要通过jsp/html或者移动设备的表单格式发送post请求
* @attention 通过getpart获取文件的方法需要servlet3.0以上支持
* @attention 添加@MultipartConfig注解之后,multipart/form-data类型的表单也可以通过request的getparameter方法获取数据
* */
@MultipartConfig
public class FileUploadTestServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public String baseFileSavePath = null;//文件保存的基础路径(自定义)
/**
* method init
* @throws ServletException
* */
public void init(ServletConfig config)
throws ServletException{
super.init(config);
this.baseFileSavePath = this.getServletContext().getInitParameter("BaseFilePath");//从web.xml排位置文件中获取基础路径
}
/*
* @method doPost
* @description 在doPost方法中使用getPart方法获取请求上传的文件
* */
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
request.getSession();
try{
Part part0 = request.getPart("file0");//获取名称为file0的文件
part0.write(this.baseFileSavePath+UploadUtil.getFileName(part0));//用Part的write方法将文件写入磁盘中
}catch(IOException e){
e.printStackTrace();
}
try{
Part part1 = request.getPart("file1");//获取名称为file1的文件
part1.write(this.baseFileSavePath+UploadUtil.getFileName(part1));//用Part的write方法将文件写入磁盘中
}catch(IOException e){
e.printStackTrace();
}
response.getWriter().write("OK!");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
doPost(request, response);
}
}