帮我用Java写一个上传文件接口代码
时间: 2023-08-28 16:27:50 浏览: 39
好的,以下是一个简单的Java实现文件上传的代码:
```java
import java.io.File;
import java.io.IOException;
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("/upload")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
maxFileSize = 1024 * 1024 * 10, // 10MB
maxRequestSize = 1024 * 1024 * 50) // 50MB
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传文件的保存目录
String savePath = request.getServletContext().getRealPath("/WEB-INF/upload");
// 如果目录不存在,需要创建目录
File file = new File(savePath);
if (!file.exists() && !file.isDirectory()) {
System.out.println("目录不存在,需要创建目录:" + savePath);
file.mkdir();
}
// 获取上传的文件集合
List<Part> parts = (List<Part>) request.getParts();
for (Part part : parts) {
// 获取上传文件的名称
String fileName = part.getSubmittedFileName();
// 将文件保存到服务器
part.write(savePath + File.separator + fileName);
}
response.getWriter().println("文件上传成功!");
}
}
```
这是一个基于Servlet 3.0规范的文件上传接口,使用了注解`@MultipartConfig`来指定上传文件的大小限制和保存目录。在`doPost`方法中,首先获取上传文件的保存目录,然后通过`request.getParts()`方法获取上传的文件集合,遍历集合将每个文件保存到服务器。最后返回上传成功的提示信息。
需要注意的是,该代码中保存文件的目录路径是相对于Web应用根目录的,需要根据实际情况进行修改。另外,该代码仅供参考,具体实现需要根据业务需求进行调整。