好的,所以我有一个 android 应用程序,它是我的 php web 服务的图像。
我已经使用base64_decode()
. 但是,当我执行 SQL 查询以将我的数据插入数据库时,脚本会插入此字符串\x5265736f75726365206964202333
。
我想知道的是如何修改我的代码以将该字符串转换为图像并将其插入到我的 PostGreSQL 数据库中,该数据库具有UTF8
编码和bytea
数据列类型来存储图像。
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 的新奇感到抱歉。