わかりましたので、私のphp Webサービスに画像を送信するAndroidアプリを手に入れました。
を使用して base64 文字列をデコードしbase64_decode()
ました。ただし、SQL クエリを実行してデータをデータベースに挿入すると、スクリプトはこの文字列を挿入します\x5265736f75726365206964202333
。
私が知りたいのは、コードを変更してその文字列を画像に変換し、UTF8
エンコーディングとbytea
画像を格納するためのデータ列タイプを持つ PostGreSQL データベースに挿入する方法です。
PHP スクリプト
header('Content-Type: text/plain; charset=UTF-8');
$conn = pg_connect("database_string");
/* GET DATA */
$name = $_POST['name'];
$s_name = pg_escape_string($name);
$description = $_POST['desc'];
$s_desc = pg_escape_string($description);
$latitude = $_POST['lat'];
$longitude = $_POST['lng'];
$project = $_POST['project'];
$encoded_photo = $_POST['snap'];
$photo = base64_decode($encoded_photo);
header('Content-Type: image/jpeg; charset=utf-8');
$file = fopen('uploaded_image.jpg', 'wb');
fwrite($file, $photo);
fclose($file);
/* INSERT INTO DATABASE */
$res = pg_query("INSERT INTO records (photo, name, description, latitude, longitude, project) VALUES ('$file', '$s_name', '$s_desc', '$latitude', '$longitude', '$project')");
私は自分の意図した解決策に近づいていることを知っています。デコードされたbase64文字列を挿入して挿入していると思いますが、Androidアプリで撮影した元の画像に変換する最終ステップがありません。Android dev'ing の新機能についてお詫び申し上げます。