Java 您将如何通过Http发布多部分文件?
我正在尝试用Java/springboot/Vaadin构建一个文件上传程序 那个上传者给了我一个记忆缓冲。如何将其发布到我的后端,如下所示:Java 您将如何通过Http发布多部分文件?,java,http,file-upload,vaadin,multipartfile,Java,Http,File Upload,Vaadin,Multipartfile,我正在尝试用Java/springboot/Vaadin构建一个文件上传程序 那个上传者给了我一个记忆缓冲。如何将其发布到我的后端,如下所示: @RestController @RequestMapping("files") public class FilesController { ... @PostMapping public ResponseEntity<String> upload(@RequestParam("file&q
@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()));
}
}
...
但是我不知道如何添加请求的多部分文件。谢谢:)我还没有测试过这段代码,所以它可能有效,也可能无效。它是基于a和JavaDoc的
我还没有测试过这段代码,所以它可能有效,也可能无效。它是基于a和JavaDoc的
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:9091/upload/files");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
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);