jsp文件
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<html>
<head>
<title>$Title$</title>
<meta charset="GB2312">
</head>
<body>
<fieldset>
<form action="upload" enctype="multipart/form-data" method="post">
单个文件上传:<input type="file" name="myFile"><br>
username:<input type="text" name="username"><br>
<input type="submit" value="上传">
</form>
</fieldset>
<fieldset>
<form action="upload" enctype="multipart/form-data" method="post">
多个文件上传:<input type="file" name="myFile"><br>
<input type="file" name="myFile"><br>
<input type="submit" value="上传">
</form>
</fieldset>
</body>
</html>
servlet文件
@WebServlet("/upload")
@MultipartConfig //该servlet可以处理二进制数据
public class FileUploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part part=req.getPart("myFile");//通过request对象接收文件
Collection<Part> parts=req.getParts();
if(parts.size()==1) {
String fileName = part.getSubmittedFileName();//获取提交的文件名
long size = part.getSize();//获取提交文件大小
String type = part.getContentType();//获取提交文件类型
System.out.println(fileName);
System.out.println(size);
//保存该文件
//如果访问容器中的目录
String path = req.getServletContext().getRealPath("upload");
System.out.println(path);
String filePath = path + File.separator + UUID.randomUUID() + fileName;
part.write(filePath);
}else {
parts.forEach(p->{
String path=req.getServletContext().getRealPath("upload");
String fileName = part.getSubmittedFileName();//获取提交的文件名
try {
p.write(path + File.separator + UUID.randomUUID() + fileName);
} catch (Exception e) {
e.printStackTrace();
}
});
}