2011-05-30 52 views
1

我会马上进入追逐!我得到了下面的代码来显示图像并存储在表php mysql图像处理

<?php 
if (isset($_GET['p'])){      //onclick i call that script with parameter 
    $d=$_GET['p'];       //so p is the parametered passed to the script 
    $connect=mysql_connect("localhost","user","") 
    or die ("Check your server connection"); 
    $db_found = mysql_select_db("mydb", $connect); 
    $SQL = "SELECT * FROM table 
      WHERE d ='$d'"; 
    $result = mysql_query($SQL); 
    $row=mysql_fetch_array($result); 
    echo "DATA: $row[data]<br>"; 
    header('Content-type:image/jpg'); 
    $content = $row['image']; 
    echo $content;  
} 
?> 

我得到的string.if我删除所有的回声,只留下回声$内容的名称一些数据;我的图像显示。此外,如果删除回声$内容并保留所有其他回声,我的回声再次显示!为什么我不能将图像和回声混合在一起?我该怎么办? thnx提前!

为JPG图像
+4

注意MySQL的注射 – 2011-05-30 13:42:04

+0

任何理由,你做的第一回声?您将无法回显正常的文本数据,然后回显图像数据。你应该尝试做一个或另一个。否则,浏览器将无法正确渲染内容。 – mikesir87 2011-05-30 13:47:04

回答

2

正确的MIME标记为“image/JPEG” - 尝试,而不是

至于对方的回答指出,你需要有头后,所有回声,但如果你有两个回声图像可能不会显示,你只需要一个回声(回声$内容)和一个头。

3

你必须调用标题之前其它输出(例如回波)。你也应该使用image/jpeg。试试这个:

 header('Content-type:image/jpeg'); 
     echo "DATA: $row[data]<br>"; 
     $content = $row['image']; 
     echo $content;