【发布时间】:2016-12-15 11:58:47
【问题描述】:
我想在休息服务中进行一个接受以下请求参数的服务调用。此方法将文件上传到图像服务器。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public ResponseEntity<String> uploadFile(
@RequestParam("file") MultipartFile file) {
以下是调用服务的代码 - 我从图像 url 读取 BufferedImage 对象中的图像
BufferedImage subImage= ImageIO.read(new URL(<some image url goes here>));
File outputFile = new File("C:\\" + "myimage" + ".jpg");
ImageIO.write(subImage, "jpg", outputFile);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<String, Object>();
String url="http://serviceurl/upload";
body.add("file", outputFile);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<MultiValueMap<String, Object>>(body, headers);
restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
如您所见,文件首先被创建并保存到磁盘。如何避免这一步,只使用 BufferedImage 对象(我不想将文件保存到本地磁盘)。
尝试了以下解决方案,但在我看来,如果不将文件保存在磁盘上,您将无法实现此目的。这是真的吗?
【问题讨论】:
-
MultipartFile 是来自
org.springframework.web.multipart.MultipartFile吗?
标签: java spring-boot multipartform-data bufferedimage resttemplate