ChipoDeil
@ChipoDeil
Школьник, пытающийся кодить.

Способы конвертации изображения в base64 в java?

Имеется некое ImageView, в котором лежит изображение. Требуется передать изображение на сервер методом POST. На сервере данные обрабатываются скриптом на php.

img = photoHolder.getDrawable();
BitmapDrawable bitmapDrawable = ((BitmapDrawable) img);
Bitmap bitmap = bitmapDrawable .getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
imageInByte = stream.toByteArray();


И где-то ниже

String img = new String(Base64.encode(imageInByte, Base64.DEFAULT));
String myParams = "img="+img;


Вроде всё работает... Но изображения не открываются. Очевидно, я как-то неверно конвертирую в base64..

Но на всякий случай вот код обработки изображния

$img1 = base64_decode($img);
$filename = "img/asd.jpg";
file_put_contents($filename, $img1);


Что не так?
  • Вопрос задан
  • 561 просмотр
Решения вопроса 2
Rou1997
@Rou1997
Так закодируйте то же самое изображение на сервере и сравните, возможно проблема просто в кодировке, не в той которая base64, а в той в которой байты представлены в запросе - UTF-8 или 1251, начните с чего-нибудь попроще, лучше с простых текстовых файлов по несколько байт.

А вообще, ваш вопрос сам по себе...
методом POST.

base64

- Так, а теперь покажите, как вы научились выключать компьютер... Да не RESET'ом, а мышкой!
- Хорошо! *берет мышку со стола и нажимает ею на RESET*
Ответ написан
@9arret
Передавать изображения на сервер в base64 - моветон. Используйте multipart
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы