【问题标题】:PHP image output issuePHP图像输出问题
【发布时间】:2012-02-27 05:29:35
【问题描述】:

我在使用 php 生成和导出图像时遇到问题。

所以我有这个:

header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename=WHATEVER.jpg');
$dragon = self::static_dragon($numbers,$avatars,$new_name,$filepath);

在 static_dragon 函数内部,我从数据库加载数据,使用它们等,然后:

imagejpeg($canvas,'',60);
imagedestroy($canvas); 
return true;

我想要实现的是,如果我写

它会给我图像。 一切正常,数据库连接,甚至将最终的 jpg 文件保存在服务器上,唯一的问题是浏览器没有向我显示图像。我认为标题中可能存在一些问题? 顺便说一句,我无法在函数之后执行标头,因为脚本告诉我标头已经发送(即使我没有看到任何可以这样做的命令...)

非常感谢您的帮助

【问题讨论】:

  • 您在设置标题之前是否会回显任何内容?即使它只是<?php 之前的空格或其他任何东西?
  • 不,没什么,“标题已发送”错误我告诉我标题已在线发送:$handler = imagecreatefromjpeg($picture);这对我来说毫无意义
  • 您是否检查过没有生成错误或警告消息?

标签: php image header export


【解决方案1】:

你也是这样吗:

header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename=WHATEVER.jpg');

$im = imagecreatefromjpeg('download.jpg') or  or die('Cannot Initialize new GD image stream'); // this will let u know whether the creation of image resource was a failure

imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00); //just a add on 

imagejpeg($im);
imagedestroy($canvas);
return true;

以上代码在浏览器中运行良好。有什么错误吗?

@Tom 正如您所提到的,您收到错误:imagecreatefromjpeg 的“标头已发送”。首先解决错误,因为 imagecreatefromjpeg() 为图像提供了资源。如果资源失败,则图像将不可见。

尝试使用@imagecreatefromjpeg()

【讨论】:

  • 啊现在我在想它,是的,它确实给了我图像资源的错误,这可能是“已经发送的错误”。与 imagecreatefromjpeg() 和 @imagecreatefromjpeg() 有什么区别?我会尝试没有错误,函数 imagestring() 是什么?谢谢!
  • 好的,现在我可以在我想要的地方拥有标题,但图像仍然没有显示。在 Chrome 中它刚刚损坏的图像,在 Firefox 中我看到消息:图像“domain.com/?request=request&width=300&height=300”无法显示,因为它包含错误。还有什么建议吗?谢谢
  • 在函数前面加上 @ 操作将阻止向用户的浏览器打印错误消息。我用处理程序更新了代码。
【解决方案2】:

你是不是忘记加了

 echo $dragon

对象在 php 文件的内容中? :) 将此行添加到您的 php 文件的末尾:

echo $dragon

see

【讨论】:

  • 我也是这么想的,但也没有用
【解决方案3】:

所以不要回显 $canvas 使用这个:

$this->getResponse()->setContent($canvas)

在你的 php 文件的头部。

(我假设 $canvas 是从数据库加载的对象)

请确保您没有在 php 文件中打印任何其他内容。

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2022-07-23
    • 2017-04-06
    • 2016-05-03
    相关资源
    最近更新 更多