java模拟调用上传文件接口
1、模拟调用上传文件接口
pom
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
调用方
@GetMapping("/upload") public String upload(String fileName) throws Exception { if (StrUtil.isBlank(fileName)) { return "fileName is null"; } File file = new File("./src/main/resources/static/uploadFile/"); if (!file.exists()) { file.mkdirs();// 能创建多级目录 } File testFile = new File(file, fileName); if (!testFile.exists()) { testFile.createNewFile();//有路径才能创建文件 } DiskFileItem fileItem = (DiskFileItem) new DiskFileItemFactory().createItem("file", MediaType.TEXT_PLAIN_VALUE, true, testFile.getName()); try { InputStream input = new FileInputStream(testFile); OutputStream os = fileItem.getOutputStream(); IOUtils.copy(input, os); } catch (Exception e) { throw new IllegalArgumentException("Invalid file: " + e, e); } MultipartFile multi = new CommonsMultipartFile(fileItem); String s = uploadService.handleFileUpload(multi); log.info(s); return s; }
被调用方
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) throws Exception { String name = file.getOriginalFilename(); File filePath = new File("./src/main/resources/static/uploadFile/"); if (!filePath.exists()) { filePath.mkdirs();// 能创建多级目录 } File testFile = new File(filePath, name); if (!testFile.exists()) { testFile.createNewFile();//有路径才能创建文件 } //第一种 需要绝对路径 // file.transferTo(testFile); //第二种 // 使用下面的jar包 FileUtils.copyInputStreamToFile(file.getInputStream(),testFile); return name; }