2010-11-26 109 views

Respuesta

27

¿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.

+0

bien, y header ("Content-Type: image/jpg"); debería ser suficiente? –

+0

@Belgin si es una imagen JPG, sí. –

+3

¿no necesita imagen/jpeg? – Rahly

9

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.

55

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.

+6

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

7

se puede hacer así:

<?php 
    $file = 'your_images.jpg'; 

    header('Content-Type: image/jpeg'); 
    header('Content-Length: ' . filesize($file)); 
    echo file_get_contents($file); 
?> 
26
$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 . '">'; 
+0

Esta debería ser la respuesta aceptada – Kareem

+0

Esto también me funciona. +1 – valkirilov

+0

Funciona, pero es un poco lento en imágenes de 10 MB. –

0

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']}");