java 上传文件接口
时间: 2023-09-03 11:07:09 浏览: 153
Java自带的HttpURLConnection访问接口实现文件上传
Java 上传文件接口可以使用 Servlet 或 Spring MVC 中的 MultipartFile。
使用 Servlet 实现上传文件接口的步骤如下:
1. 创建一个 Servlet 类,并继承 HttpServlet 类。
2. 在 doPost 方法中获取上传的文件,使用 Part 接口的 getInputStream 方法获取文件内容。
3. 将文件保存到指定的目录中。
示例代码:
```java
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
private static final String UPLOAD_DIRECTORY = "uploads";
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取上传的文件
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
// 保存文件到指定目录
String uploadPath = getServletContext().getRealPath("") + File.separator + UPLOAD_DIRECTORY;
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
filePart.write(uploadPath + File.separator + fileName);
response.getWriter().print("File uploaded successfully!");
}
}
```
使用 Spring MVC 实现上传文件接口的步骤如下:
1. 添加 `commons-fileupload` 和 `commons-io` 依赖。
2. 创建一个 Controller 类,并添加 `@PostMapping` 注解。
3. 在方法中使用 `MultipartFile` 接口获取上传的文件。
4. 将文件保存到指定的目录中。
示例代码:
```java
@Controller
public class UploadController {
private static final String UPLOAD_DIRECTORY = "uploads";
@PostMapping("/upload")
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) throws IOException {
String fileName = file.getOriginalFilename();
// 保存文件到指定目录
String uploadPath = System.getProperty("user.dir") + File.separator + UPLOAD_DIRECTORY;
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
File targetFile = new File(uploadPath + File.separator + fileName);
FileUtils.copyInputStreamToFile(file.getInputStream(), targetFile);
return ResponseEntity.ok("File uploaded successfully!");
}
}
```
阅读全文