我们有文件的字节数组,我们想把它作为文件上传。
FileBody
仅获取File
作为参数,但我们有一个字节数组。
一种解决方案是将字节数组保存到文件中然后发送它 但它不适合我。
byte b[]= new byte[1000];
//fill b
MultipartEntity form = new MultipartEntity();
form.addPart("file", new FileBody(/* b? */));
感谢。
答案 0 :(得分:8)
您可以执行类似
的操作HttpClient client=null;
byte b[]= new byte[1000];
MultipartEntity form = new MultipartEntity();
ContentBody cd = new InputStreamBody(new ByteArrayInputStream(b), "my-file.txt");
form.addPart("file", cd);
HttpEntityEnclosingRequestBase post = new HttpPost("");//If a PUT request then `new HttpPut("");`
post.setEntity(form);
client.execute(post);
答案 1 :(得分:3)
您可以使用ByteArrayBody代替InputStreamBody或FileBody。
HttpClient client=null;
byte b[]= new byte[1000];
MultipartEntity form = new MultipartEntity();
ContentBody cd = new ByteArrayBody(b, "my-file.txt");
form.addPart("file", cd);
HttpEntityEnclosingRequestBase post = new HttpPost("");
post.setEntity(form);
client.execute(post);