无法将图像输出到src标签中

时间:2009-08-17 22:27:28

标签: php image

我有以下内容:

$imageurl = "<img class='item_thumb'
src='getimagethumbnail.php?imagename=".urlencode($product_image)."&from=".$prodimagedir."' 
min-width='150' min-height='150' border='0' class='item_thumb'>";

创建以下html:

<img class="item_thumb" border="0" min-height="150" min-width="150"
src="getimagethumbnail.php?imagename=productsmall_1248886833bloggingbok.jpg&
from=products/"/>

但是,图像不会显示。我将浏览器指向src链接,它给了我一堆不可读的文本,我假设是图像意味着脚本getimagethumbnail工作正常。 (我猜)。

但正如我所说,图像根本没有出现。有什么问题,我可以采取哪些步骤来确定问题?

添加,当我将浏览器指向该src链接时:它还给了我:

 Warning: Cannot modify header information - headers already sent by 
(output started at /home/dji/public_html/getimagethumbnail.php:35) in 
/home/dji/public_html/includes/functions.php on line 4953

我认为这是因为输出?这个脚本工作正常,据我所知,我没有对它进行任何修改!

由于

4 个答案:

答案 0 :(得分:7)

您正在尝试在输出空格/字符后发送header('Content-Type')命令。

您需要确保header命令在页面上打印任何内容之前。

这将有效:

 header('Content-Type: ....');
 readfile('file.png');

这不会

 readfile('file.png');
 header('Content-Type: ....');

这是因为header命令告诉浏览器在内容中查找的内容。必须在任何内容之前发送所有标头,因为这是连接的工作方式。在内容发送完毕后,无法告知浏览器会发生什么。

  

与服务器打开连接 - &gt;获取标题 - &gt;获取内容 - &gt;关闭连接

这背后的一个重要原因是encoding。当内容通过时,浏览器必须正确解码。如果你在页面中间发送一个标题告诉浏览器编码类型是a,当它像b一样处理它时,事情会变得非常混乱。

因此,为了正确发送标头,必须在任何输出之前放置header命令。

答案 1 :(得分:0)

当您将内容输出到输出然后尝试使用header()方法时,会导致该错误。在使用header()执行所需操作之前,不应该输出任何内容。在此之前不应该有任何东西,甚至不是白色空间。

答案 2 :(得分:0)

在设置图像类型的标题之前,您已经产生了一些输出(在第35行)。这可能只是php标记之间的空格,或者是您忘记删除的内容。

答案 3 :(得分:0)

您的getimagethumbnail.php脚本未生成有效图片;它包含文本(你引用的警告信息),这会阻止浏览器呈现它。根据错误文字判断,我猜这是由于对getimagethumbnail.phpfunctions.php所做的更改。

从根本上说,问题是functions.php在输出已经发送到浏览器之后试图调用header(),这只是普通的不起作用。您需要检查这两个文件,并确保对header()的任何来电都发送到任何之前,然后将数据发送到浏览器。

您可能需要关闭display_errors设置,因为任何因任何原因而产生任何警告或错误的代码都会导致您在header()之前发生警告/错误时遇到的问题调用。 (只要确保你有错误登录,所以你仍然可以看到出了什么问题!)