文件上传
2021-09-14 14:03:38
@Autowired HttpServletRequest request; @Value("${ueditor.upload.domain}") private String webUploadDomain; @Value("${txcloud.upload.dir}") private String txcloudUploadDir; @RequestMapping("/upload") public RestResult upload(@RequestParam("file") MultipartFile file) { String webUploadDir = UeditorUtil.getUploadDir(); if (!webUploadDir.endsWith(File.separator)) { webUploadDir += File.separator; } String fileNameWhole = file.getOriginalFilename(); Integer indexOfDot = fileNameWhole.lastIndexOf("."); String suffixName = ""; String fileName = ""; if (indexOfDot > 0) { suffixName = fileNameWhole.substring(indexOfDot); fileName = fileNameWhole.substring(0, indexOfDot); } else { fileName = fileNameWhole; } String date = TimeUtil.date2Str(new Date(), "yyyyMMddHHmmssS"); String newFileName = fileName + "-DATE-" + date + suffixName; String destPath = webUploadDir + newFileName; File dest = new File(destPath); try { file.transferTo(dest); String filePath = txcloudUploadDir + newFileName; TxCloudUtil.upLoadByFile(dest, filePath); FileUtils.forceDeleteOnExit(dest); String url = webUploadDomain + filePath; return RestResult.buildSuccess(url); } catch (IOException e) { log.error(e.getMessage(), e); return RestResult.buildFailWithMsg(e.getMessage()); } }
配置上传的最大大小:
import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.util.unit.DataSize; import javax.servlet.MultipartConfigElement; /** * @author chenanlian * 配置上传文件的最大大小 */ @Configuration public class MultipartConfig { @Bean public MultipartConfigElement multipartConfigElement(){ MultipartConfigFactory factory=new MultipartConfigFactory(); factory.setMaxFileSize(DataSize.parse("500MB")); factory.setMaxRequestSize(DataSize.parse("500MB")); return factory.createMultipartConfig(); } }