我需要打印这个“print json_encode($ datos); base64中的图片。
你好朋友会看到我想得到一个名为CATEGORIES的表的所有记录,其中包含字段IDCATEGORIA,NAMECATEGORIES,IMAGENCATEGORI,使用PHP和MYSQL制作的Webservice并用JSON显示给我,问题是Web服务只返回我IDCATEGORY和NAMECATEGORIES但IMAGENCATEGORI没有显示它,这是我第一次用PHP管理Webservices,我只用Java占用了Webservices,而在Java中,有必要获得数据库的IMAGENCATEGORIA字段并进行转换然后将该图像显示为base64然后将其显示为base64中已经形成JSON的其他数据旁边的字符串,有人会知道如何在我的PHP代码中实现它,这里我留下PHP文件:
抱歉我的英语非常糟糕xD
Meta.php
/**
* Representa el la estructura de las metas
* almacenadas en la base de datos
*/
require 'Database.php';
class Meta
{
function __construct()
{
}
/**
* Retorna en la fila especificada de la tabla 'meta'
*
* @param $idMeta Identificador del registro
* @return array Datos del registro
*/
public static function getAll()
{
$consulta = "SELECT * FROM meta";
try {
// Preparar sentencia
$comando = Database::getInstance()->getDb()->prepare($consulta);
// Ejecutar sentencia preparada
$comando->execute();
return $comando->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
return false;
}
}
}
?>
obtener_metas.php
<?php
/**
* Obtiene todas las metas de la base de datos
*/
require 'Meta.php';
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// Manejar petición GET
$metas = Meta::getAll();
if ($metas) {
$datos["estado"] = 1;
$datos["metas"] = $metas;
print json_encode($datos);
} else {
print json_encode(array(
"estado" => 2,
"mensaje" => "Ha ocurrido un error"
));
}
}
答案 0 :(得分:1)
首先,从您的问题来看,IMAGENCATEGORI
字段是否包含实际图像(存储为BLOB的原始图像)或文件名或路径是不是很清楚。
以下是我在if ($metas)
内修改obtener_metas.php
块的方法。
if ($metas) {
$datos["estado"] = 1;
$datos["metas"] = [];
foreach($metas as $meta) {
// Push an entry in the new array, replacing raw image with base64-encoded
$datos["metas"][] = array(
'IDCATEGORIA' => $meta['IDCATEGORIA'],
'NAMECATEGORIES' => $meta['NAMECATEGORIES'],
'IMAGENCATEGORIA' => base64_encode($meta['IMAGENCATEGORIA']),
);
}
print json_encode($datos);
} else {
// your original code
}
几乎相同,只需要先从文件系统中读取文件。
$imagesPath = '/path/to/your/images'; // replace with actual path
if ($metas) {
$datos["estado"] = 1;
$datos["metas"] = [];
foreach($metas as $meta) {
// Push an entry in the new array, replacing raw image with base64-encoded
$imgFileContents = file_get_contents($imagesPath . '/' . $meta['IMAGENCATEGORIA'];
$datos["metas"][] = array(
'IDCATEGORIA' => $meta['IDCATEGORIA'],
'NAMECATEGORIES' => $meta['NAMECATEGORIES'],
'IMAGENCATEGORIA' => base64_encode($imgFileContents),
);
}
print json_encode($datos);
} else {
// your original code
}
希望这会有所帮助。请告诉我!