2011-04-12 19 views
10

Quiero imprimir una imagen usando una etiqueta img que src es un archivo php, la secuencia de comandos también procesará algunas acciones en el servidor scirpt. ¿Alguien tiene un código de ejemplo?Un archivo php como img src

aquí es mi código de prueba pero ningún efecto

img.html

<img src="visitImg.php" /> 

visitImg.php

<? 

header('Content-Type: image/jpeg'); 

echo "<img src=\"btn_search_eng.jpg\" />"; 

?> 

Respuesta

5

ACTUALIZACIÓN

lo que puede hacer sin necesidad de utilizar include como se ha dicho más abajo en los comentarios:

intente esto:

<? 
$img="example.gif"; 
header ('content-type: image/gif'); 
readfile($img); 
?> 

El código anterior es de this sitio

respuesta original
NO intenta esto:

<? 

header('Content-Type: image/jpeg'); 

include 'btn_search_eng.jpg'; // SECURITY issue for uploaded files! 

?> 
+0

aún mejor: 'readfile ('btn_search_eng.jpg')' Se limpia directamente a la salida. –

+1

Me pregunto quién votó en contra de esto. 'include' en un archivo de imagen. De Verdad? – mario

+0

-1 porque claramente 'include' en una imagen no funcionará. 'include' es para incluir código PHP. Y también está usando short_tags que no son recomendables y no funcionarán en muchos servidores. –

1

Si va a utilizar header('Content-Type: image/jpeg'); en la parte superior de su script, entonces la salida de su script mejor que sea una imagen JPEG! En su ejemplo actual, está especificando un tipo de contenido de imagen y luego proporcionando salida HTML.

1

Lo que hace eco es HTML, no los datos binarios necesarios para generar una imagen JPEG. Para lograrlo, necesitarás leer un archivo externo o generar un archivo usando las funciones de manipulación de imágenes de PHP.

6

Directamente desde el php fpassthru docs:

<?php 

// open the file in a binary mode 
$name = './img/ok.png'; 
$fp = fopen($name, 'rb'); 

// send the right headers 
header("Content-Type: image/png"); 
header("Content-Length: " . filesize($name)); 

// dump the picture and stop the script 
fpassthru($fp); 
exit; 
?> 

Como explicación, tiene que pasar los datos de imagen como salida desde el script, no datos HTML. Puede utilizar otras funciones como fopen, readfile, etc etc etc

11

Uso readfile:

<?php 
header('Content-Type: image/jpeg'); 
readfile('btn_search_eng.jpg'); 
?> 
Cuestiones relacionadas