Java,SpringBoot,MultipartFile,表单处理上传文件上传,代码
背景
SpringBoot,2.3.9.RELEASE,表单上传文件,案例代码。案例
后台代码 package com.what21.demo.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @Controller @RequestMapping("/upload") @Slf4j public class FileUploadController { @RequestMapping(value = "/show", method = {RequestMethod.GET, RequestMethod.POST}) @ResponseBody public Object show(HttpServletRequest request) { Map dataMap = new HashMap<>(); dataMap.put("code", "ok"); dataMap.put("status", "success"); return dataMap; } @RequestMapping(value = "/multiUpload", method = {RequestMethod.GET, RequestMethod.POST}) @ResponseBody public Object multiUpload(HttpServletRequest request) { Map dataMap = new HashMap<>(); dataMap.put("code", "ok"); // ===================================================================================// // ===== 解析参数&保存文件 // ===================================================================================// String storagePath = "D:/Temp/Upload/"; // 多文件 MultipartHttpServletRequest multipartHttpRequest = (MultipartHttpServletRequest) request; Map multipartFileMap = multipartHttpRequest.getFileMap(); Set keySet = multipartFileMap.keySet(); for (String key : keySet) { MultipartFile multipartFile = multipartFileMap.get(key); if (multipartFile.isEmpty()) { continue; } String fileName = multipartFile.getOriginalFilename(); try { File dest = new File(storagePath + fileName); multipartFile.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } } // ===================================================================================// // ===== 返回结果 // ===================================================================================// return dataMap; } @RequestMapping(value = "/multiUpload2", method = {RequestMethod.GET, RequestMethod.POST}) @ResponseBody public Object multiUpload2(HttpServletRequest request) { Map dataMap = new HashMap<>(); dataMap.put("code", "ok"); // ===================================================================================// // ===== 解析参数&保存文件 // ===================================================================================// String storagePath = "D:/Temp/Upload/"; // 多文件 MultipartHttpServletRequest multipartHttpRequest = (MultipartHttpServletRequest) request; List multipartFileList = multipartHttpRequest.getFiles("files"); String filePath = storagePath; for (int i = 0; i < multipartFileList.size(); i++) { MultipartFile file = multipartFileList.get(i); if (file.isEmpty()) { continue; } String fileName = file.getOriginalFilename(); File dest = new File(filePath + fileName); try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } } // ===================================================================================// // ===== 返回结果 // ===================================================================================// return dataMap; } }
配置类: /** * 允许不规范 URL 访问 * @return */ @Bean public HttpFirewall httpFirewall() { return new DefaultHttpFirewall(); }
前端代码: Form表单上传 Form表单上传
Form表单上传 Form表单上传