java中图上传代码
时间: 2023-07-02 11:07:37 浏览: 44
以下是一个简单的Java Servlet代码示例,说明如何处理文件上传:
```java
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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("/UploadServlet")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
maxFileSize = 1024 * 1024 * 10, // 10MB
maxRequestSize = 1024 * 1024 * 50) // 50MB
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
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());
// 设置响应内容类型
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// 循环处理上传的文件
for (Part filePart : fileParts) {
// 获取上传的文件名
String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
// 将文件保存到指定目录
filePart.write("/path/to/save/" + fileName);
// 输出上传成功信息
out.println("上传文件 " + fileName + " 成功!");
}
}
}
```
这个示例使用了Java Servlet 3.0的新特性:`@MultipartConfig`注解,用来处理文件上传。其中,`fileSizeThreshold`、`maxFileSize`和`maxRequestSize`参数分别指定了文件大小的阈值、最大文件大小和最大请求大小。在上面的代码中,我们设置了阈值为2MB,最大文件大小为10MB,最大请求大小为50MB。
`doPost()`方法获取上传的文件集合,然后循环处理每个文件。对于每个文件,我们可以通过`Part`对象的`getSubmittedFileName()`方法获取上传的文件名,然后将文件保存到指定目录。
请注意,上面的代码只是一个简单的示例,实际的文件上传代码可能需要更多的错误处理、安全性考虑和优化。