javaweb文件上传(图片)
html表单
<form action="AddServlet" method="post" enctype="multipart/form-data">
图片<input type="file" name="img"><br>
<input type="submit" value="提交">
</form>
Servlet
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;
import java.io.IOException;
@WebServlet("/AddServlet")
//用来指明servlet的请求当中包含文件
@MultipartConfig
public class Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
private CommodityService commodityService=new CommodityService();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//接受文件(一个Part表示一个文件)
Part part = request.getPart("img");
//获取头文件
String header = part.getHeader("content-disposition");
//获得文件后缀
String s = header.substring(header.lastIndexOf("."), header.lastIndexOf("\""));
//用系统时间作为文件名
String newFileName=System.currentTimeMillis()+s;
//将文件保存到服务器的img目录
String dir = getServletContext().getRealPath("img");
part.write(dir+"/"+newFileName);
String img="img/"+newFileName;
boolean b = commodityService.add(),img);
response.sendRedirect(request.getContextPath()+"/PageListServlet");
}
}