在PHP中显示图像时出错

时间:2015-04-17 17:17:21

标签: php image filesystems

我正在尝试理解文件系统在PHP中的工作方式。我创建了一个小例子来显示文件夹中的图像,但不是打印图像我认为我正在打印内容。

<?php
  $image = "/path/to/image.jpg";
  $myfile = fopen($image, "r") or die("Unable to open file!");

  $logo = fread($myfile,filesize($image));
  echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>"; 
?>

我是否碰巧写错了命令或错过了我需要做的事情?

3 个答案:

答案 0 :(得分:1)

您的数据不是路径,而是文件的内容,没关系,但您必须使用数据URI语法:

$logo = "data:image/jpg;base64,".base64_encode($logo);
echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>"; 

在此处查看类似的帖子:Unable to display image from MySQL table

答案 1 :(得分:0)

img src属性采用文件名并执行自己的过程来读取图像并实际显示它。如果您使用文本编辑器打开图像文件,您将会感到有趣的胡言乱语。您在上面的代码中尝试做的是在src中添加乱码。如果您在浏览器中执行查看源代码,则可以看到。

如果你想显示一个图像,你实际上不需要php,这只是<img src="/path/to/image.jpg">提供路径在你的webroot内。

答案 2 :(得分:0)

您需要提供图片url作为src而不是内容,如下所示:

$log = "http://ideone.com/gfx2/img/spoj.png";

echo "<img src='$log' width='100' height='100'/>"; 

DEMO

假设图像与html页面位于同一目录中,那么您只需使用:

$log = "spoj.png";
echo "<img src='$log' width='100' height='100'/>"; 

让我们假设图像位于与html页面相同的目录中名为images的目录中,然后您可以使用:

$log = "images/spoj.png";
echo "<img src='$log' width='100' height='100'/>";