根据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)上传图片。
答案 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 );