java如何上传文件
使用Servlet处理文件上传
在Java中,可以使用Servlet来处理文件上传。需要用到javax.servlet.http.Part或Apache Commons FileUpload库。
@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
Files.copy(fileContent, Paths.get("/path/to/save/" + fileName));
}
}
使用Spring Boot处理文件上传
在Spring Boot中,可以使用MultipartFile简化文件上传处理。
@RestController
public class FileUploadController {
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename();
file.transferTo(new File("/path/to/save/" + fileName));
return "File uploaded successfully";
}
}
使用Apache Commons FileUpload
对于非Servlet环境或需要更多控制的情况,可以使用Apache Commons FileUpload库。
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
String fileName = item.getName();
File uploadedFile = new File("/path/to/save/" + fileName);
item.write(uploadedFile);
}
}
前端表单设置
前端HTML表单需要正确设置enctype属性才能支持文件上传。
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
文件大小限制配置
在Spring Boot中,可以在application.properties中配置上传文件大小限制。
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
在Servlet中,可以通过@MultipartConfig注解配置限制。

@MultipartConfig(
fileSizeThreshold = 1024 * 1024,
maxFileSize = 1024 * 1024 * 5,
maxRequestSize = 1024 * 1024 * 5 * 5
)






