【问题标题】:Android HTTP Upload of File from resources-drawable not working从资源可绘制文件的Android HTTP上传不起作用
【发布时间】:2016-01-15 13:28:42
【问题描述】:

我正在尝试从本地 Drawable 文件夹上传文件,但出现错误。我尝试了在互联网上找到的几个代码 sn-ps(一些来自 stackoverflow),但似乎没有任何效果。我的问题似乎是 File 对象的实例化,以便我可以从中创建 FileBody ,然后通过 addPart 方法将其添加到 MultipartEntityBuilder 中。一切看起来都正常并且可以编译,但是当 HttpClient 在运行时执行帖子时,我收到一个错误,提示文件名太长。

这里是代码 sn-p。我在 AsyncTask 的 doInBackground 事件中有这个:

HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(HTTP.USER_AGENT, global.GeUserAgent());
HttpPost httppost = new HttpPost(***URLHERE***);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
InputStream ins = getResources().openRawResource(R.drawable.IMAGE_I_AM_TRYING_TO_UPLOAD_HERE);
BufferedReader br = new BufferedReader(new InputStreamReader(ins));
StringBuffer sb = new StringBuffer();
String line;
while((line = br.readLine()) != null){
sb.append(line);
}
file1 = new File(sb.toString());
FileBody fileBody = new FileBody(file1);
builder.addPart("file1",fileBody);
httppost.setEntity(builder.build());
HttpResponse response = httpclient.execute(httppost);

有人有什么想法吗?提前谢谢你。

【问题讨论】:

    标签: java android file bufferedreader


    【解决方案1】:

    好的,我自己在 stackoverflow 上找到了答案。 答案在于使用 addBinaryBody 而不是 MultipartEntityBuilder 的 addPart:

    Android create file from drawable

    我希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2015-04-29
      • 1970-01-01
      • 2017-12-05
      • 2020-07-20
      • 1970-01-01
      • 2016-12-14
      相关资源
      最近更新 更多