帮我写一个java后端多文件上传接口
时间: 2023-08-28 10:36:38 浏览: 107
好的,以下是一个Java后端多文件上传接口的示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
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;
@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
private static final String UPLOAD_DIR = "/path/to/upload/directory/";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Part> fileParts = request.getParts().stream().filter(part -> "file".equals(part.getName())).collect(Collectors.toList());
for (Part filePart : fileParts) {
String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
Path filePath = Paths.get(UPLOAD_DIR + fileName);
Files.copy(filePart.getInputStream(), filePath);
}
response.getWriter().println("Files uploaded successfully!");
}
}
```
这个示例代码使用了Java Servlet 3.0的新特性`@MultipartConfig`,允许我们处理多文件上传请求。在`doPost`方法中,我们首先使用`request.getParts()`方法获取所有上传的文件。然后,我们可以过滤出所有名为`file`的文件部件,使用Java 8的Stream API将它们收集到一个列表中。
接下来,我们循环遍历所有文件部件,获取文件名和上传路径,使用Java NIO的`Files.copy`方法将文件保存到服务器上的指定目录中。
最后,我们可以向客户端发送一个成功的响应消息。
需要注意的是,你需要将`UPLOAD_DIR`变量修改为你自己的上传目录路径。
阅读全文