文件上传
步骤
1.添加@MultipartConfig文件上传的注解
2.调用getPart()方法获取页面传来的文件,得到Part对象
3.使用Part对象的write()方法来执行文件上传
4.使用getSubmittedFileName()方法来获取上传的文件名
5.给页面表单加上enctype="multipart/form-data"属性
@MultipartConfig
@WebServlet("/upload")
public class UploadController extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建目录
File file = new File(getServletContext().getRealPath("/")+"\\upload");
if(!file.exists()){
file.mkdirs();
}
/*
单文件
Part part = req.getPart("myFile");
System.out.println(part.getSize());
//执行上传
pp.write(file.getPath() +"\\"+ getFile(p.getSubmittedFileName()));*/
//多文件
Collection<Part> parts = req.getParts();
for(Part p : parts){
p.write(file.getPath() +"\\"+ getFile(p.getSubmittedFileName()));
}
}
//截取后缀并创建新的文件名
private String getFile(String filename){
return new Date().getTime() + filename.substring(filename.lastIndexOf("."));
}
}
<%--文件上传
method 必须 post
enctype 必须指定 multipart/form-data
--%>
<form action="/upload" method="post" enctype="multipart/form-data">
<%--3个文件 name同不同名都行--%>
<input type="file" name="myFile"/>
<input type="file" name="myFile1"/>
<input type="file" name="myFile2"/>
<input type="submit"/>
</form>