У меня есть код для отправки текста и нескольких изображений в один запрос на сервер, в моем случае я прохожу через локальную базу данных, чтобы получить данные и несколько изображений, чтобы я мог использовать addPart(key, textdata);
для текстовые данные и addPart(key, filename, inputstream, "application/octet-stream");
для данных изображения. Но проблема в том, что, когда у меня есть несколько изображений в одном запросе, я могу отправить только один из них. Вот мои полные code. Основная проблема возникает в строке 31, когда у меня есть более одного изображения, она отправляет только одну из них. Буду признателен за любую помощь. Спасибо.Отправка многоформатных данных формы с изображением и текстом в android
0
A
ответ
1
Проблемы я думаю, что это может быть здесь
reqEntity.addPart("myFile", yourImage);
В этом ключе (Myfile) остается одинаковым для всех изображений. поэтому, когда ваши изображения больше одного, он продолжает перезаписывать предыдущее изображение. Так что я думаю, вы должны прикрепить индекс с ключом (начиная от 0,1 и так далее), что-то вроде этого, например
reqEntity.addPart("myFile_"+i, yourImage);
А также отправить IMAGE_COUNT на сервер вместе с изображениями, так что это будет узнайте, сколько изображений вы действительно отправляете, и имея простой цикл для конца сервера, они смогут получить все эти изображения. надеюсь это поможет.
0
Попробуйте этот путь
String sResponse = "";
String url = "http://www.api.in/rpcs/uploadfiles/?";
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
MultipartEntity entity = new MultipartEntity();
options1.inPreferredConfig = Bitmap.Config.ARGB_8888;
byte[] data1 = null,data2= null,data3= null,data4= null,data5= null;
if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).contains("endum_image_0"))
{ up_image1 = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("endum_image_0", "");
bitmap = BitmapFactory.decodeFile(up_image1, options1);
bitmap.compress(CompressFormat.JPEG, 100, bos1);
data1 = bos1.toByteArray();
}
if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).contains("endum_image_1"))
{ up_image2 = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("endum_image_1", "");
bitmap = BitmapFactory.decodeFile(up_image2, options1);
bitmap.compress(CompressFormat.JPEG, 100, bos2);
data2 = bos2.toByteArray();
}
if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).contains("endum_image_2"))
{ up_image3 = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("endum_image_2", "");
bitmap = BitmapFactory.decodeFile(up_image3, options1);
bitmap.compress(CompressFormat.JPEG, 100, bos3);
data3 = bos3.toByteArray();
}
if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).contains("endum_image_3"))
{ up_image4 = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("endum_image_3", "");
bitmap = BitmapFactory.decodeFile(up_image4, options1);
bitmap.compress(CompressFormat.JPEG, 100, bos4);
data4 = bos4.toByteArray();
}
if(PreferenceManager.getDefaultSharedPreferences(getBaseContext()).contains("endum_image_4"))
{ up_image5 = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getString("endum_image_4", "");
bitmap = BitmapFactory.decodeFile(up_image5, options1);
bitmap.compress(CompressFormat.JPEG, 100, bos5);
data5 = bos5.toByteArray();
}
entity.addPart("post_id", new StringBody(post_id));
entity.addPart("user_id", new StringBody(user_id));
entity.addPart("cat_id", new StringBody(category));
if(data1!=null){
entity.addPart("files[]", new ByteArrayBody(data1,"image/jpeg", "u1.jpg"));
}
if(data2!=null){
entity.addPart("files[]", new ByteArrayBody(data2,"image/jpeg", "u2.jpg"));
}
if(data3!=null){
entity.addPart("files[]", new ByteArrayBody(data3,"image/jpeg", "u3.jpg"));
}
if(data4!=null){
entity.addPart("files[]", new ByteArrayBody(data4,"image/jpeg", "u4.jpg"));
}
if(data5!=null){
entity.addPart("files[]", new ByteArrayBody(data5,"image/jpeg", "u5.jpg"));
}
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null)
{
s = s.append(sResponse);
}
if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
return s.toString();
}else
{
return "{\"status\":\"false\",\"message\":\"Some error occurred\"}";
}
Смежные вопросы
- 1. Кнопка формы с настраиваемым изображением и текстом
- 2. Android селектора с изображением и текстом
- 3. Android Grid View с изображением и текстом
- 4. Android Listview с изображением и текстом
- 5. Android Listview с изображением и текстом Array
- 6. Пользовательский адаптер Android с изображением и текстом
- 7. Android ImageButton с изображением и текстом
- 8. Кнопки с изображением и текстом
- 9. GridView с изображением и текстом
- 10. Как сделать multipart формы данных в android с изображением и текстом?
- 11. UIButton с изображением и текстом
- 12. Spinner с изображением и текстом
- 13. Обмен растровым изображением и текстом android
- 14. UIButton с изображением и текстом
- 15. Чтение многоформатных данных в Octave
- 16. Кнопка с изображением и текстом
- 17. Галерея с изображением и текстом
- 18. DIV с изображением и текстом
- 19. Механизм Python: отправка формы с файлом (изображением)?
- 20. Android: Пространство между изображением и текстом
- 21. Android-намерение Android с изображением и текстом тела
- 22. Android ListView с изображением и текстом с помощью json
- 23. пробел между текстом и изображением
- 24. Android, как поделиться изображением с текстом?
- 25. zoom textview с изображением и текстом (содержание Html) в android
- 26. Android ActionBar с текстом и изображением в названии
- 27. Кнопка фон с изображением, текстом и цветом в android
- 28. UIPickerView с изображением и текстом в swift?
- 29. GridView с изображением и текстом по центру
- 30. Linear Layout с изображением и текстом
Спасибо вам, я изменил некоторые из моего кода, и ваше предложение действительно работает! –
рад помочь вам .. :) –