次のコードを実行する Java HttpClient があります。
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://exampleutl.com/upload/");
File file = new File("C:/src_path/binary.doc");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.STRICT);
FileBody fileBody = new FileBody(file); //image should be a String
builder.addPart("file", fileBody);
post.setEntity(builder.build());
client.execute(post);
/upload/ パスにマップされたサーバー メソッドがどのように見えるべきかわかりません。
このファイル アップロード リクエストを受け入れるサーバーは Spring 4.0 です。このようなもの:
@RequestMapping(method = RequestMethod.POST, value = "/upload/")
public @ResponseBody String saveUpload(UploadDto dto) throws IOException,ServletException {
File file = new File("C:/dest_path/" + dto.getFile().getOriginalFilename());
FileUtils.writeByteArrayToFile(file, dto.getFile().getBytes());
return "success";
}
上記のサーバー メソッドは client.execute() によって呼び出されますが、UploadDto は空です。UploadDto は次のとおりです。
public class UploadDto {
private MultipartFile file;
public MultipartFile getFile() {
return file;
}
public void setFile(MultipartFile file) {
this.file = file;
}
}
どんな援助でも大歓迎です!