【发布时间】:2016-07-09 19:14:57
【问题描述】:
我无法将任何响应显示为图像。我试过silex方法和纯PHP,像这样
$file = '1465797900_yoda.png';
if (!file_exists('images/'.$file)) {
return $app->abort(404, 'The image was not found.');
}
$stream = function () use ($file) {
readfile($file);
};
return $app->stream($stream, 200, array('Content-Type' => 'image/png'));
或纯PHP:
$file = 'images/1465797900_yoda.png';
$type = 'image/png';
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
echo readfile($file);
如果我使用方法 1,我的响应是空白图像,但方法 2 返回随机轨道,如下所示:
J����j��?'T|֢1���Kc�Zu�#��9�G��IEND�B`�
纯 PHP 没有问题,只有 Silex。 感谢您的帮助。
【问题讨论】:
-
如果你把图片链接放在
块中,有问题的朋友吗?
-
好吧,您的代码似乎与 Silex 文档中的代码相匹配,所以这很奇怪(我自己从未尝试过这样做)。您是否尝试过此处显示的技术:whateverthing.com/blog/2013/06/30/quick-web-apps-part-two/…(这只是谷歌搜索的随机结果)。
-
@AniruddhaChakraborty 是的。但我需要加密我的图像,所以我不应该将图像传递给 img src。
-
@AdamCameron 是的,我试过了。我有同样的结果。图片是空白的。
-
您能否向我们提供一个完整的(但已缩减;没有与问题无关的内容)演示您的代码不起作用。我们可以放入香草 Silex 网站并亲自查看的东西吗? (例如:根据 sscce.org)。包括从路由到完整控制器的所有内容。您只是在浏览器地址栏中点击 URL,还是从站点的视图中调用它?如果是后者,也包括该代码。