@WebServlet("/FileServlet ")
@MultipartConfig
public class FileServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//获取上传文件的name值
Part filePart = request.getPart("portrait");
//获取请求头参数值
String headerInfo = filePart.getHeader("Content-Disposition");
//根据请求头参数值得到文件名
String eportrait = parseName(headerInfo);
//把当前应用的路径转成真实的部署服务器上下文路径+服务器中应用的上下文路径加上上传的目录 (就是把虚拟路径转成物理路径)
String realPath = request.getServletContext().getRealPath(File.separator+"imager");
//加上文件名得到最终的全路径
String fullFilePath=realPath+ File.separator + eportrait;
//输出文件
filePart.write(fullFilePath);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
/**
* 切割字符串
* @param headerInfo 整个请求头的参数
* @return 文件名
*/
private static String parseName(String headerInfo) {
String[] strings = headerInfo.split("\"");
return strings[strings.length - 1];
}
}