Java 如何从request钟的formData获取文件
时间: 2024-01-24 20:16:43 浏览: 154
Java Web使用Html5 FormData实现多文件上传功能
从request中获取formData中的文件,可以按以下步骤进行:
1. 在HTML表单中,使用`<input type="file">`标签来允许用户选择文件并上传。
2. 在服务器端,使用Java Servlet API中的`Part`类来获取上传的文件。
3. 通过`request.getParts()`方法获取所有上传的文件,然后遍历所有的Part对象,找到需要的文件,并使用`Part.write()`方法将文件写入磁盘。
下面是一个示例代码,演示了如何从request中获取formData中的文件:
```java
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import javax.servlet.http.Part;
@WebServlet("/upload")
public class FileUploadServlet extends HttpServlet {
// 处理POST请求
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取所有上传的文件
for (Part part : request.getParts()) {
// 如果是文件类型的Part
if (part.getContentType() != null && part.getContentType().startsWith("multipart/form-data")) {
// 获取文件名和保存路径
String fileName = part.getSubmittedFileName();
String savePath = "C:/uploads/" + fileName;
// 写入文件
part.write(savePath);
}
}
// 返回响应
response.setContentType("text/html");
response.getWriter().println("File uploaded successfully!");
}
}
```
这个示例代码假设你已经创建了一个`/uploads`目录来存储上传的文件。当用户上传文件时,该文件将被保存在该目录中。如果你想要将文件保存在其他地方,请将`savePath`变量设置为所需的路径。
阅读全文