Heim > Backend-Entwicklung > PHP-Tutorial > Linux 下 PHP 无法 echo 图片

Linux 下 PHP 无法 echo 图片

WBOY
Freigeben: 2016-06-06 20:18:09
Original
1497 Leute haben es durchsucht

这串代码,在 linux 环境下无法显示图片

<code>$img_url = $_GET['img'];
$content = file_get_contents($img_url);
header('Content-Type: image/jpeg; charset=UTF-8');
echo $content;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

linux 环境的访问地址 demo (存在问题)
mac 环境的访问地址 demo (正常)
win 关机了就不贴了 (正常)

我在这串代码之前添加过 error_reporting(E_ALL);ini_set("display_errors","On");die;未发现错误,
检查了 linux 环境下的 allow-url-fopenon,并且可以 print_r 出来,内容相同如下:

<code>����JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ��C     ��C      ��j�"��  ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B����  #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?�����2���}x����bi��f(�IQ߆���]/�?</code>
Nach dem Login kopieren
Nach dem Login kopieren

这串字符没太多意义,截取了头部一段贴了上来。

同时添加一个 phpinfo 供大家查看

回复内容:

这串代码,在 linux 环境下无法显示图片

<code>$img_url = $_GET['img'];
$content = file_get_contents($img_url);
header('Content-Type: image/jpeg; charset=UTF-8');
echo $content;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

linux 环境的访问地址 demo (存在问题)
mac 环境的访问地址 demo (正常)
win 关机了就不贴了 (正常)

我在这串代码之前添加过 error_reporting(E_ALL);ini_set("display_errors","On");die;未发现错误,
检查了 linux 环境下的 allow-url-fopenon,并且可以 print_r 出来,内容相同如下:

<code>����JFIF��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ��C     ��C      ��j�"��  ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B����  #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?�����2���}x����bi��f(�IQ߆���]/�?</code>
Nach dem Login kopieren
Nach dem Login kopieren

这串字符没太多意义,截取了头部一段贴了上来。

同时添加一个 phpinfo 供大家查看

这个问题于昨夜三点解决,在代码输出之前添加 ob_clean 即可,在 Thinkphp 的调试模式下会有意外输出,但是这个输出是什么尚未找到,而且这个意外输出只有 linux 下才会有,怀疑是框架问题和系统配置之间有什么问题。

正常来说, 应该可以输出图片的。 windows 下,我测试时没有问题。 thinkphp 可能某些应用到ob 缓存了,清理下吧,不然直接在浏览器输出 二进制流可能有问题。

少扩展
freetype,jpegsrc,libpng装上试试

header('Content-Type: image/jpeg; charset=UTF-8');
这行去掉charset=UTF-8
header('Content-Type: image/jpeg');

看了一下,lz的相应头里是 Content-Type: image/jpg,应该是 Content-Type: image/jpeg

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage