CakePhp Display image from database.
Esta es la solución definitiva. Hay varias maneras de hacerlo:
Supongamos el siguiente escenario: Tenemos una base de datos en MySql 8.15 que tiene una tabla llamada fotos que tiene, entre otros campos, uno llamado foto_grd.
Corre por tu cuenta cargar registros correctamente. Yo lo hice con Faker (un generador de datos de prueba). Creo que también puedes usar el MySql Workbench...
Por el método GET
Generamos el código usando bake, para fotos.
En fotosController:
public function grande($id = null)
{
$foto = $this->Fotos->get($id);
$response = $this->getResponse()->withStringBody(new Stream($foto->foto_grd))->withType('jpg');
$this->viewBuilder()->setLayout(null);
return $response;
}
En el template fotos/view.ctp
Html->image('/fotos/grande/54'); ?>
Esto Tiene un problema, y es que entre otras cosas un usuario puede recorrer todas las fotos de la base de datos
La otra manera es mostrar la foto o renderizar, directamente en el tag
En este caso no requerimos del método public function grande($id = null) en el controlador
Asumimos que al template llegan los datos de la foto en un objeto @var \App\Model\Entity\Foto $foto
de modo que esté disponible algo así como $foto->foto_grd
En el template solo debes colocar la siguiente línea de código:
El método stream_get_contents es necesario para rescatar el recurso, si no lo colocas aparecerá algo así como:
Resource id #302
A mi me gusta más la función stream_get_contents, porque si usas $this->getResponse()->withStringBody(new Stream($foto->foto_grd))->withType('jpg');, requiere la librería:
use Zend\Diactoros\Stream;
Saludos.
Entre más uso otros frameworks más me gusta CakePhp. :-)
martes, 19 de febrero de 2019
martes, 12 de febrero de 2019
Dispositivo ACPI\CPL0002 *CPL0002 Dell Inspiron Mini 10v 1011
Después de trabajar mucho para identificar este hardware de una mini laptop dell inpiron con windows 7 32 bits encontré que se trata de un "COMPAL Embedded System Control"que no tengo idea que rayos es.
Lo cierto es que el driver lo encontré en lenovo, sip, en lenovo... me encanta cuando los americanos, los rusos, los alemanes, lenovo, dell, hp... todos usan componentes chinos... |-)
Driver: https://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/B520e/Win7/ID17STW10WW5.exe
en esta pagina: https://support.lenovo.com/ve/es/downloads/ds024586
Saludos. Y ¡comenten coño! que no les cuesta nada...
Lo cierto es que el driver lo encontré en lenovo, sip, en lenovo... me encanta cuando los americanos, los rusos, los alemanes, lenovo, dell, hp... todos usan componentes chinos... |-)
Driver: https://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/B520e/Win7/ID17STW10WW5.exe
en esta pagina: https://support.lenovo.com/ve/es/downloads/ds024586
Saludos. Y ¡comenten coño! que no les cuesta nada...
Suscribirse a:
Entradas (Atom)