【问题标题】:PHP readfile() not workingPHP readfile()不起作用
【发布时间】:2015-06-17 10:33:42
【问题描述】:

我无法让 readfile() 工作。试图显示图像。我在一个名为“getImage.php”的页面中有这个

<?php 
header('Content-Type: image/jpg');
readfile($_SERVER['DOCUMENT_ROOT']."/images/test.jpg");
?>

我尝试过使用相对路径 readfile("images/test.jpg");

我仍然得到一个损坏的图像,查看源代码时图像源显示:
site.co.uk/getImage.php

当我删除页眉时,我得到的页面充满了奇怪的符号和字母。

我做错了什么?这可能是 php.ini 文件中的配置吗?我在共享主机上,所以不确定我可以修改它。也尝试过 file_get_contents() 但仍然无法显示图像。

图像大小为 242 KB。

谢谢

【问题讨论】:

  • 你遇到了什么错误?
  • 请回显路径echo $_SERVER['DOCUMENT_ROOT']."/images/test.jpg"; 并检查是否正确?
  • 确保您的 php 文件开头没有 BOM 标记。
  • 您应该始终检查是否file exists,如果是,则在输出图像内容时设置正确的标题,最重要的是:header('Content-type: image/jpg');

标签: php


【解决方案1】:

'当我删除页眉时,我得到的页面充满了奇怪的符号和字母。'听起来它对我有用。 readfile 将打开文件并读取里面的内容并将其显示在输出缓冲区中。图像文件不是文本文件,因此您看到的奇怪符号和字母与您在文本编辑器中打开文件时看到的相似。您要在 html 文件中的什么位置显示此图像?

【讨论】:

    【解决方案2】:

    去掉图片前面的 / 看看 ?像这样……

    <?php header('Content-Type: image/jpg'); readfile($_SERVER['DOCUMENT_ROOT']."images/test.jpg"); ?>

    【讨论】:

      猜你喜欢
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 2012-10-01
      相关资源
      最近更新 更多