InputStreamBodyのgetContentLength()は必ず-1を返却しているようなので
オーバーライドしてファイルサイズを返却するように修正。
修正前:
entity.addPart("file", new InputStreamBody(stream, "application/octet-stream", fileName) ;
修正後:
entity.addPart("file", new InputStreamBody(stream, "application/octet-stream", fileName) {
 @Override
 public long getContentLength() {
  return fileSize;
 }
});
リファレンスに説明あるんだろうな・・・。
 

















