私は、画像をbase64文字列でエンコードし、phpスクリプトに渡して、この文字列をblob(テキストも試しました)ファイルに保存することで、画像をmysqlデータベースに保存しようとしています。何が起こるかというと、文字列はそのままphpスクリプトに送信されますが、データベースに保存されると、まったく異なる文字列として保存されます。
これが私がそれをする方法です:
Bitmap image = BitmapFactory.decodeFile("/sdcard/photo2.jpg");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteImage = stream.toByteArray();
String s = Base64.encodeToString(byteImage, Base64.NO_WRAP | Base64.URL_SAFE);
次に、文字列's'がphpスクリプトに渡され(正しくチェックしたとおり)、スクリプトがデータベースに挿入します。
このリンクhttp://diffchecker.com/kKD4w16Cには、元のエンコードされた文字列(画面の左側)とデータベースに保存されている文字列(画面の右側)が含まれています。
なぜこれが起こっているのか、そしてそれを防ぐ方法はありますか?
前もって感謝します。