2

で画像をエンコードし、Base64.encodeToString(他のデータの中でも) JSON 本文に追加し、保存のために Web サービスに送信しています。

私のエンコード方法は次のようになります。

private static String encodeToBase64(Bitmap image) {
  Bitmap immagex = image;
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  byte[] bytes = baos.toByteArray();
  String imageEncoded = Base64.encodeToString(bytes, Base64.DEFAULT);
  return imageEncoded;
}

次に、 を呼び出し.add("encoded_image", encodeToBase64(bitImage));JSONObject、Web サービス クラスを介して送信します。

ただし、反対側の画像を取得すると、破損しています。PHP 関数base64_decodeが実行され、画像が提供されるように見えますが、その画像を一時ファイルに書き込むと、開くことができません。画像が破損しているとのことです。どこから探し始めればよいのかよくわかりません。

私は他のスレッドを見てきましたが、それらの解決策はうまくいかないようです。

助けていただければ幸いです。ありがとう。

4

1 に答える 1

2

DEFAULTオプションがあなたのPHPバージョンとうまく混ざっているとは思いません。PHP の特定のバージョンにはbase64_decode、入力が適切にフォーマットされていない場合にバグが発生するバグがあるようです。

オプションを追加してNO_WRAP、生成された出力に空白/改行文字が含まれていないことを確認してください。

それでも問題が解決しない場合は、関数のマニュアルページを参照して、base64_decode関数を機能させる方法のヒントを確認してください。

Android で送信し、php で受信したものを分析した場合、つまり、デバッグ出力をログに記録したり、ブレークポイントで検査したりして、何か問題があるかどうかを確認する場合にも役立つ場合があります。

于 2013-04-18T20:07:57.270 に答える