如何使用二进制格式的图像上传到Imgur(API v3)?

时间:2014-10-13 15:27:59

标签: java image-uploading binaryfiles imgur

根据API,我们可以将图像上传为二进制文件。

https://api.imgur.com/endpoints/image#image-upload

我尝试了以下操作将文件读入字节数组。

// Example 1
byte[] fileBytes  = new byte[(int) new File("/home/sample.png").length()];
fileBytes =  FileUtils.readFileToByteArray( this.imageRequest.getFile() );
String sImageBinaryData = new String( fileBytes );

我究竟应该如何提取图像的二进制数据?

PS:我不想知道如何使用(base64& URL)上传图片。

1 个答案:

答案 0 :(得分:0)

我使用HttpClient / HttpMime将图像作为二进制文件发布

" MultipartEntity"目前已弃用。我不得不使用MultipartEntityBuilder

1)包含以下jar httpmime,它是HttpClient的依赖jar。

2)

 MultipartEntityBuilder builder = MultipartEntityBuilder.create();
 builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

 File file = new File("/sample.jpg");
 FileBody filebody = new FileBody(file);
 builder.addPart("image", filebody );
 builder.addTextBody("type", "file");
 builder.addTextBody("album", '<Deleted hash>' );    //anonymous album

 HttpEntity entity = builder.build();

 HttpPost httpPost = new HttpPost("<Imgur API endpoint>");
 httpPost.setEntity( entity );

 CloseableHttpClient httpClient = HttpClientBuilder.create().build()
 HttpResponse response = httpClient.execute( httpPost );