【发布时间】:2015-06-26 19:23:54
【问题描述】:
我正在使用 RESTful 端点进行一些文件操作。我想通过 REST 向我的服务发布一个 jar 文件,我尝试了以下方法但仍然失败,我几乎尝试谷歌搜索但找不到任何解决方案。
@RestController
public class MyController {
...
@RequestMapping(value="/jobs/upload", method=RequestMethod.POST)
public @ResponseBody ResponseEntity<Void> handleFileUpload(HttpEntity<byte[]> requestEntity){
byte[] payload = requestEntity.getBody();
InputStream logo = new ByteArrayInputStream(payload);
HttpHeaders headers = requestEntity.getHeaders();
return ResponseEntity.ok().build();
}
...
}
卷曲命令:curl -X POST --data-binary @/Users/path/to-jar/test-jar.jar localhost:8008/ctx/jobs/upload
[EDIT] :如果我必须通过 --data-binary 实现,我的代码应该是什么样子?
我无法继续进行,任何人都可以帮忙。我在 MultiPart 上看到了很多解决方案,但我无法适应它。
【问题讨论】:
-
这里有一个关于这个问题的很好的教程:mkyong.com/spring-mvc/spring-mvc-file-upload-example
-
@eyp :我更关注通过 Spring 与 RESTController 的集成。 Multipart 我必须进入我不需要的 Spring MVC。
-
您的控制器已经在使用 Spring MVC(尽管您可能不会像使用相同的组件和基础架构那样体验它)。
-
@M.Deinum :是的,但我唯一需要的是我想用 --data-binary 作为 curl 发布。我该怎么做? Multipart 采用 RequestParam,这实际上是我最后的手段。