2011-04-12 87 views
10

我想通過使用一個img標籤打印一個圖像,其中src是一個php文件,該腳本還將在服務器scirpt中處理一些操作。任何人都有一個示例代碼?一個php文件作爲img src

這裏是我的測試代碼,但沒有效果

img.html

<img src="visitImg.php" /> 

visitImg.php

<? 

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

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

?> 

回答

5

UPDATE

什麼作爲評論下面說你可以不用使用include

試試這個:

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

上面的代碼是從this網站

原來的答案
不要試試這個:

<? 

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

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

?> 
+0

甚至更​​好:'ReadFile的( 'btn_search_eng.jpg')'它它刷新直接到輸出。 – 2011-04-12 04:05:48

+1

我想知道是誰投了票。包含圖像文件。真? – mario 2011-04-12 04:07:08

+0

-1,因爲在圖像上清楚地包含''將不起作用。 'include'用於包含PHP代碼。此外,這是使用short_tags,這是不推薦的,並且不會在許多服務器上工作。 – 2011-04-12 04:09:07

1

如果你想在你的腳本的頂部使用header('Content-Type: image/jpeg');,那麼你的腳本的輸出最好是JPEG圖像!在您當前的示例中,您正在指定圖像內容類型,然後提供HTML輸出。

1

你迴應的是HTML,而不是生成JPEG圖像所需的二進制數據。要做到這一點,您需要讀取外部文件或使用PHP的圖像處理函數生成文件。

6

直接從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; 
?> 

作爲一個解釋,你需要從腳本傳遞圖像數據作爲輸出, HTML數據。您可以使用其他功能,如fopenreadfileetc etc etc

11

使用readfile

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