好的,这是一段用于上传文件的简单 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 javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String UPLOAD_DIR = "uploadedFiles";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取上传文件的目录
String uploadFilePath = request.getServletContext().getRealPath("") + File.separator + UPLOAD_DIR;
// 如果目录不存在则创建
File uploadFile = new File(uploadFilePath);
if (!uploadFile.exists()) {
uploadFile.mkdir();
}
// 解析请求的内容提取文件数据
@SuppressWarnings("unchecked")
List<Part> fileParts = (List<Part>) request.getParts();
// 上传文件
for (Part filePart : fileParts) {
String fileName = filePart.getSubmittedFileName();
if (fileName != null) {
String filePath = uploadFilePath + File.separator + fileName;
Path path = Paths.get(filePath);
Files.copy(filePart.getInputStream(), path);
}
}
}
}
这段代码演示了如何使用 HTTP POST 请求上传文件。
它将上传的文件存储在服务器的 "uploadedFiles" 目录中。如果该目录不存在,它会自动创建。
它使用了 Servlet 3.0 中的新特性 javax.servlet.http.Part
来解析请求内容,并使用 java.nio.file.Files
类的 copy
方法将上传的文件保存到服务器上。