Как отправить несколько изображений на сервер с помощью MultipartEntity с Android ⇐ Android
-
Гость
Как отправить несколько изображений на сервер с помощью MultipartEntity с Android
Я отправляю изображения и текст в веб-службу PHP, используя следующий код.
попробуй { HttpClient httpClient = новый DefaultHttpClient(); HttpContext localContext = новый BasicHttpContext(); HttpPost httpPost = новый HttpPost (URL); Объект MultipartEntity = новый MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE); ByteArrayOutputStream бос = новый ByteArrayOutputStream (); bitmap.compress(CompressFormat.JPEG, 75, бос); данные byte[] = bos.toByteArray(); entity.addPart("файлы[]", новый ByteArrayBody(data, "myImage.jpg")); entity.addPart("message0", новый StringBody(caption.getText() .нанизывать())); httpPost.setEntity(сущность); Ответ HttpResponse = httpClient.execute(httpPost, локальныйконтекст); Читатель BufferedReader = новый BufferedReader( новый InputStreamReader( response.getEntity().getContent(), "UTF-8"); Строка sResponse = readLine.readLine(); вернуть ответ; } catch (Исключение е) { если (dialog.isShowing()) диалог.отклонить(); Toast.makeText(ImageUpload.this, e.getMessage(), Toast.LENGTH_LONG).show(); Log.e(e.getClass().getName(), e.getMessage(), e); вернуть ноль; } } Все работает отлично. Но это только для одного изображения. Я хочу отправить 5 изображений.
Пример: Изображение1 – Текст1 Изображение2 – Текст2 и т. д.
Поэтому я не понимаю, как хранить 5 изображений одно за другим, а затем при нажатии кнопки отправлять эти изображения и связанный с ними текст на сервер.
Я получаю изображения с камеры телефона.
Намерение намерение = новое намерение(); Intent.setType("изображение/*"); намерение.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult( Intent.createChooser(intent, «Выбрать изображение»), ВЫБРАТЬ_ИЗОБРАЖЕНИЕ); public void onActivityResult_photo(int requestCode, int resultCode, Данные о намерении) { // TODO Автоматически сгенерированная заглушка метода если (resultCode == RESULT_OK) { если (данные!= ноль) { mImageCaptureUri = data.getData(); дисплей (mImageCaptureUri); } еще { Toast.makeText(CustomTabActivity.mTabHost.getContext(), "Фотография не выбрана..", Toast.LENGTH_SHORT).show(); } } } отображение частной строки (Uri mImageCaptureUri2) { // TODO Автоматически сгенерированная заглушка метода Строка base64string = ноль; пытаться { если (mImageCaptureUri2 != ноль) { Система.gc(); selectedImagePath = getPath(mImageCaptureUri2); Файл filenew = новый файл (selectedImagePath); int file_size = Integer.parseInt(String.valueOf(filenew .длина()/1024)); если (размер_файла
Я отправляю изображения и текст в веб-службу PHP, используя следующий код.
попробуй { HttpClient httpClient = новый DefaultHttpClient(); HttpContext localContext = новый BasicHttpContext(); HttpPost httpPost = новый HttpPost (URL); Объект MultipartEntity = новый MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE); ByteArrayOutputStream бос = новый ByteArrayOutputStream (); bitmap.compress(CompressFormat.JPEG, 75, бос); данные byte[] = bos.toByteArray(); entity.addPart("файлы[]", новый ByteArrayBody(data, "myImage.jpg")); entity.addPart("message0", новый StringBody(caption.getText() .нанизывать())); httpPost.setEntity(сущность); Ответ HttpResponse = httpClient.execute(httpPost, локальныйконтекст); Читатель BufferedReader = новый BufferedReader( новый InputStreamReader( response.getEntity().getContent(), "UTF-8"); Строка sResponse = readLine.readLine(); вернуть ответ; } catch (Исключение е) { если (dialog.isShowing()) диалог.отклонить(); Toast.makeText(ImageUpload.this, e.getMessage(), Toast.LENGTH_LONG).show(); Log.e(e.getClass().getName(), e.getMessage(), e); вернуть ноль; } } Все работает отлично. Но это только для одного изображения. Я хочу отправить 5 изображений.
Пример: Изображение1 – Текст1 Изображение2 – Текст2 и т. д.
Поэтому я не понимаю, как хранить 5 изображений одно за другим, а затем при нажатии кнопки отправлять эти изображения и связанный с ними текст на сервер.
Я получаю изображения с камеры телефона.
Намерение намерение = новое намерение(); Intent.setType("изображение/*"); намерение.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult( Intent.createChooser(intent, «Выбрать изображение»), ВЫБРАТЬ_ИЗОБРАЖЕНИЕ); public void onActivityResult_photo(int requestCode, int resultCode, Данные о намерении) { // TODO Автоматически сгенерированная заглушка метода если (resultCode == RESULT_OK) { если (данные!= ноль) { mImageCaptureUri = data.getData(); дисплей (mImageCaptureUri); } еще { Toast.makeText(CustomTabActivity.mTabHost.getContext(), "Фотография не выбрана..", Toast.LENGTH_SHORT).show(); } } } отображение частной строки (Uri mImageCaptureUri2) { // TODO Автоматически сгенерированная заглушка метода Строка base64string = ноль; пытаться { если (mImageCaptureUri2 != ноль) { Система.gc(); selectedImagePath = getPath(mImageCaptureUri2); Файл filenew = новый файл (selectedImagePath); int file_size = Integer.parseInt(String.valueOf(filenew .длина()/1024)); если (размер_файла
Мобильная версия