【SpringBoot】十、上传单个文件

tech2024-04-18  100

目录

1. 配置上传限制

2. 前端

3. 控制器接收

4. 业务层编写业务方法

5. 创建upload目录,测试


大抵和SpringMVC操作流程一致。 

1. 配置上传限制

spring: # 配置上传文件最大容量 servlet: multipart: max-file-size: 1024MB

2. 前端

<form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="multipartFile" /> <input type="submit" value="上传" /> </form>

3. 控制器接收

/** * 文件上传控制器 * @author ZRH * @version 1.0.0 * @date 2020/9/3 */ @Slf4j @RestController public class UploadController extends BaseController{ @Autowired private UploadService uploadService; @PostMapping("/upload") public RestResultDTO<Long> upload(HttpSession session, MultipartFile multipartFile){ return handleMessage(uploadService.uploadFile(session.getServletContext().getRealPath("/") + "upload/", multipartFile)); } }

4. 业务层编写业务方法

文件名用java.util.UUID乱序命名

/** * 文件上传业务接口 * @author ZRH * @version 1.0.0 * @date 2020/9/3 */ public interface UploadService { /** * 上传文件 * @param multipartFile * @return Long 状态码 */ Long uploadFile(String uploadDir, MultipartFile multipartFile); } /** * 上传文件 * @author ZRH * @version 1.0.0 * @date 2020/9/3 */ @Slf4j @Service("uploadService") public class UploadServiceImpl implements UploadService { /** * 上传文件 * * @param multipartFile * @param uploadDir 上传目录地址 * @return Long 状态码 */ @Override public Long uploadFile(String uploadDir, MultipartFile multipartFile) { log.info("准备上传文件"); try { // 如果目录不存在,则自动创建 File dir = new File(uploadDir); if(!dir.exists()){ dir.mkdir(); } // 上传文件名 String fileName = UUID.randomUUID() + multipartFile.getOriginalFilename(); // 服务器保存 File serverFile = new File(uploadDir + fileName); multipartFile.transferTo(serverFile); return StatusCodeConstant.UPLOAD_SUCCESS_STATUS_CODE; }catch (Exception exception){ log.error("上传文件错误" + exception.getMessage()); return StatusCodeConstant.UPLOAD_FAIL_STATUS_CODE; } } }

5. 创建upload目录,测试

最新回复(0)