Base64 Android кодировать в PHP декодировать сделать ошибку - PullRequest
0 голосов
/ 27 ноября 2011

Я француз, так что извините за мой английский ...

Я разрабатываю приложение для Android, которое взаимодействует со службой PHP REST. Итак, когда я пытаюсь закодировать файл изображения в Base64 следующим образом:

InputStream fileInputStream = context.getContentResolver().openInputStream(uri);
BufferedInputStream in = new BufferedInputStream(fileInputStream);
StringWriter out = new StringWriter();
int b;
while ((b = in.read()) != -1)
    out.write(b);
out.flush();
out.close();
in.close();
String encoded = new String(android.util.Base64.encode(out.toString()
            .getBytes(), android.util.Base64.DEFAULT));

На стороне сервера я делаю:

$data=base64_decode(chunk_split($base64BinaryData));

В результате мой файл изображения поврежден!

ИНФОРМАЦИЯ: изображение создается намерением android.provider.MediaStore.ACTION_IMAGE_CAPTURE в режиме эмулятора (avd 5554)

Я уже читал много дискуссий о подобной проблеме, но ничего не исправило мою ошибку.

спасибо за помощь

С уважением,

Ответы [ 2 ]

0 голосов
/ 27 ноября 2011

Я предполагаю, что:

out.toString().getBytes()

неверно.Какой тип "вне"?Если это изображение, то вам нужно получить необработанные байты изображения, а не байты строкового представления объекта.

0 голосов
/ 27 ноября 2011

Можете ли вы просто отбросить chunk_split?

Кроме того, вы можете хэшировать два двоичных файла?Возможно, используя sha1 и посмотрите, действительно ли они разные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...