如何解决你将如何 Http-Post 一个 MultipartFile?
我正在尝试使用 Java/Spring-boot/Vaadin 构建文件上传器。
https://vaadin.com/components/vaadin-upload/java-examples
那个上传者给了我一个 MemoryBuffer。如何将其发布到我的后端,如下所示:
@RestController
@RequestMapping("files")
public class FilesController {
...
@PostMapping
public ResponseEntity<String> upload(@RequestParam("file") MultipartFile file) {
try {
fileService.save(file);
return ResponseEntity.status(HttpStatus.OK)
.body(String.format("File uploaded successfully: %s",file.getOriginalFilename()));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(String.format("Could not upload the file: %s!",file.getOriginalFilename()));
}
}
...
我尝试了类似的东西:
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:9091/upload/files");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
但我不知道如何添加请求的 MultipartFiles。谢谢:)
解决方法
我还没有测试过这段代码,所以它可能会也可能不会。它基于 Baeldung article 和 FileData JavaDoc。
FileData fileData = memoryBuffer.getFileData();
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addBinaryBody("blabla",fileData.getFile(),ContentType.create(fileData.getMimeType()),fileData.getFileName());
HttpEntity entity = builder.build();
httppost.setEntity(entity);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。