首页 > 解决方案 > 使用 PHP 来“解析”带有响应头“content-type: image/jpeg”的图像

问题描述

我正在从 graph.facebook.com 请求一张图片

响应标头使用“content-type: image/jpeg”并提示我下载而不是在浏览器中显示。

有没有办法(使用 PHP)“拦截”下载并将其转换为图像格式?

干杯。

更新:

这种作品。它将图像返回到浏览器(在 Chrome 的网络选项卡中可见),但我不确定如何在<img>标签中显示它:

<?php
$data = file_get_contents("https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg");

// $data = base64_decode($data);

$im = imagecreatefromstring($data);

if ($im !== false) {
    header('Content-Type: image/png');
    $qwe = imagepng($im);
    imagedestroy($im);
    return $qwe;
}
else {
    echo 'An error occurred.';
}
?>

标签: phpimagedownload

解决方案


您的代码无效。您不要使用return非函数,因为它没有意义。如果您的情况需要更换

return $qwe;

只是简单

echo $qwe;

我也会立即关注它die();并删除关闭?>。这应该是让它工作所需要的一切。

不确定获取 JPEG 文件但输出 PNG 的想法有什么意义。除了浪费时间和资源之外,您一无所获,因此整个转换代码非常无用,并且与您刚刚下载的内容相呼应就足够了:

header('Content-Type: image/jpeg');
$data = file_get_contents(".....");
if ($data !== false) {
    echo $data;
}
die();

PS:作为作业,摆脱使用file_get_contets()网络访问并使用cURL,尤其是。可以禁用以前使用的网络包装器。


推荐阅读