好吧,所以我有一个Android应用程序,图像到我的PHP Web服务。PHP的base64如何变成图像插入数据库
我使用base64_decode()
解码了我的base64字符串。但是,当我执行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的新颖道歉。
'\ x5265736f75726365206964202333'为'Resource id#3' as text。所以我会说你没有获得自己的图像数据,但有一些在你的网络应用程序中处理它。 – 2013-05-13 04:59:17
@CraigRinger我该如何利用这个句柄来查找图像数据本身? – WebDevDanno 2013-05-13 07:00:11