0

こんにちは、PHP バックエンドを使用してリモートの MySQL サーバーにデータを送信する必要があるコースワークに取り組んでいます。現在、画像の送受信に問題があります。

私が現在行っているのは、画像をbase64にエンコードし、httpポストを介してサーバーに送信することです。送信されているデータを確認しましたが、すべて問題ありません。ただし、PHP側で正しく処理されていません。

これが私がやっていることです...

これは、ビットマップを文字列に変換するために使用する方法です...

  ByteArrayOutputStream baos=new  ByteArrayOutputStream();
  image.compress(Bitmap.CompressFormat.JPEG, 90, baos);
    byte [] b=baos.toByteArray();
    String imageString=Base64.encodeToString(b, Base64.DEFAULT);

次に、この imageString を http 投稿で送信すると、以下の PHP スクリプトによって受信されます

$uploadDIR = '../data/';
if ($_REQUEST['picture']!=null){

    $image = base64_decode($_REQUEST['picture']);
    $file = $uploadDIR . uniqid().'.jpeg';
file_put_contents($file, $image);
    $sql = "
                                            INSERT INTO comments
                                            (image)
                                            VALUES (
                                                    '".$file."'
                                                    )";


}
executeSQLQuery($sql);

これを数回試した後、ファイルでさえその場所に保存されていません。

助けてくれてありがとう:)

4

1 に答える 1

0

画像がすでにビットマップに変換されていると仮定した Java のコード:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmIcone.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] byte_arr = stream.toByteArray();
String image_str = Base64.encodeBytes(byte_arr);
namevaluepair.add(new BasicNameValuePair("image", image_str));

サーバー内:

$base= $_REQUEST['image'];
$buffer = base64_decode($base);

$buffer = mysql_real_escape_string($buffer);
于 2014-11-11T08:06:19.783 に答える