文章目录
一、核心方法
HttpServletRequest 类方法
方法 | 描述 |
---|---|
Part getPart(String name) | 获取请求中给定 name 的文件 |
Collection getParts() | 获取所有的文件 |
Part 类方法
方法 | 描述 |
---|---|
String getSubmittedFileName() | 获取提交的文件名 |
String getContentType() | 获取提交的文件类型 |
long getSize() | 获取文件的大小 |
void write(String path) | 把提交的文件数据写入磁盘文件 |
二、代码示例
前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>上传文件</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="MyFile">
<input type="submit" value="上传">
</form>
</body>
</html>
后端代码
UploadServlet.java
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("/upload")
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part part = req.getPart("MyFile");
// 获取文件的真实名字
System.out.println(part.getSubmittedFileName());
// 获取文件的大小
System.out.println(part.getSize());
// 获取文件的类型
System.out.println(part.getContentType());
// 将文件写入服务器的磁盘
part.write("d:/result.jpg");
resp.getWriter().write("upload ok");
}
}
上传文件我们发现出现报错500,我们需要加上 @MultipartConfig
的注解,表明开启上传文件,也就是说这里默认是关闭上传文件的。
成功运行并上传文件,在D盘里面发现多出来了个 result.jpg 文件,此时表明文件上传成功
在控制台打印出我们之前需要打印的信息