¿cómo puedo mostrar una imagen recuperada usando file_get_contents en php?Mostrar imagen usando file_get_contents
¿Necesito modificar los encabezados y solo repetirlos o algo así?
Gracias!
¿cómo puedo mostrar una imagen recuperada usando file_get_contents en php?Mostrar imagen usando file_get_contents
¿Necesito modificar los encabezados y solo repetirlos o algo así?
Gracias!
¿Necesito modificar los encabezados y solo repetirlos o algo así?
exactamente.
Envíe un header("content-type: image/your_image_type");
y los datos después.
se puede hacer eso, o puede utilizar la función readfile
, que da salida por usted:
header('Content-Type: image/x-png'); //or whatever
readfile('thefile.png');
die();
Editar: Derp, fija errata evidente obvio.
Puede utilizar readfile y salida de las cabeceras de imagen que se puede obtener de getimagesize así:
$remoteImage = "http://www.example.com/gifs/logo.gif";
$imginfo = getimagesize($remoteImage);
header("Content-type: {$imginfo['mime']}");
readfile($remoteImage);
La razón se debe utilizar readfile aquí es que se da salida al archivo directamente en el búfer de salida donde como file_get_contents leerá el archivo en la memoria que es innecesario en este contenido y potencialmente intensivo para archivos grandes.
Esta solución es mucho mejor ya que los encabezados de las imágenes se pasan dinámicamente. Aunque encontré un problema con esto: en mi versión de PHP, la tercera línea (la línea del encabezado) no era sintaxis aceptada. Sin embargo, esto funcionó: header ("Content-type:". $ Imginfo ['mime']); – jsleuth
se puede hacer así:
<?php
$file = 'your_images.jpg';
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($file));
echo file_get_contents($file);
?>
$image = 'http://images.itracki.com/2011/06/favicon.png';
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($image));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="' . $src . '">';
Esta debería ser la respuesta aceptada – Kareem
Esto también me funciona. +1 – valkirilov
Funciona, pero es un poco lento en imágenes de 10 MB. –
pequeña edición en @seengee respuesta: Con el fin de trabajar, necesita llaves alrededor de la variable, de lo contrario obtendrá un error.
header("Content-type: {$imginfo['mime']}");
bien, y header ("Content-Type: image/jpg"); debería ser suficiente? –
@Belgin si es una imagen JPG, sí. –
¿no necesita imagen/jpeg? – Rahly