java获取表单文件实现代码
时间: 2024-04-12 11:32:08 浏览: 104
以下是使用Java获取表单文件的实现代码示例:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
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 long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uploadPath = "path/to/upload"; // 设置文件上传路径
// 创建目录(如果不存在)
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
// 获取所有上传的文件
for (Part part : request.getParts()) {
String fileName = extractFileName(part); // 提取上传文件的文件名
// 保存文件到指定路径
String filePath = uploadPath + File.separator + fileName;
File saveFile = new File(filePath);
part.write(filePath);
// 或者使用以下代码将文件保存到指定路径
// InputStream inputStream = part.getInputStream();
// Files.copy(inputStream, saveFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
System.out.println("文件保存路径:" + filePath);
}
response.getWriter().println("文件上传成功!");
}
// 提取上传文件的文件名
private String extractFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] items = contentDisp.split(";");
for (String item : items) {
if (item.trim().startsWith("filename")) {
return item.substring(item.indexOf("=") + 2, item.length() - 1);
}
}
return "";
}
}
```
上述代码是一个基于Servlet的文件上传示例,使用`javax.servlet.http.Part`类来处理表单文件上传。在`doPost`方法中,我们首先设置了文件上传的路径,然后遍历所有上传的文件,逐个保存到指定的路径中。
请注意,上述代码中的`uploadPath`变量需要根据实际情况进行修改,以确保文件保存到正确的路径。
此外,如果你使用的是Spring框架,也可以使用Spring提供的`MultipartFile`接口来处理文件上传。具体实现方式可以参考Spring官方文档或其他相关教程。
阅读全文