2016-01-15 2 views
0

Я пытаюсь загрузить файл из локальной папки Drawable, и я получаю ошибки. Я пробовал несколько фрагментов кода, которые я нашел в Интернете (некоторые из stackoverflow), но ничего не работает. Моя проблема, похоже, является созданием объекта File, поэтому я могу создать из него FileBody, который, в свою очередь, добавляется в MultipartEntityBuilder с помощью метода addPart. Все выглядит нормально и компилируется, но когда HttpClient выполняет почту во время выполнения, я получаю сообщение об ошибке, в котором указано, что имя файла слишком длинное.Загрузка файла HTTP из файла из ресурса-drawable не работает

Это код фрагмента. У меня это внутри события doInBackground для AsyncTask:

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); 

У кого-нибудь есть идеи? Заранее спасибо.

ответ

0

Хорошо, я просто нашел ответ прямо здесь, в stackoverflow. Ответ заключается в использовании addBinaryBody вместо addPart в MultipartEntityBuilder:

Android create file from drawable

Я надеюсь, что это поможет кому-то.

Смежные вопросы