文件上传前台必要条件
1.post请求
2.表单属性类型file
3.enctype类型为multipart/form-data
<form action="${pageContext.request.contextPath }/uploadServlet" method ="post" enctype="multipart/form-data">
照片:<input type="file" name="photo" />
<br>
<input type="submit" value="上传" />
</form>
获取文件上传
package com.javaweb.servlet3;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/uploadServlet")
@MultipartConfig//表明是能够处理multipart请求
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//获取目标文件存储路径,放在webContent目录下的images目录里面。
String path = this.getServletContext().getRealPath("/images");
//从请求中获取MultiPart请求的上传文件的名为photo的对象,
Part part = request.getPart("photo");
//解析文件名
String header = part.getHeader("Content-Disposition");
int index = header.lastIndexOf("=");
String filename = header.substring(index+2,header.length()-1);
//完成文件上传
part.write(path+"/"+filename);
}
}