file_exist显示图像路径而不是.jpg

时间:2013-10-01 08:21:31

标签: php

我在这里使用file_exist获取了一个代码。它检查目录中是否存在.txt和.jpg文件。然后在警告框中显示这些内容。它适用于.txt,但不适用于.jpg。它显示图像源而不是图像本身。我在这做错了什么?你能给我一些帮助吗?非常感谢!这是我的代码。

的search.php

<?php
    class Model
    {
        public function readexisting()
        {
            if(
                file_exists($_SERVER['DOCUMENT_ROOT']."/Alchemy/events/folder-01/event-01.txt") 
                && 
                file_exists($_SERVER['DOCUMENT_ROOT']."/Alchemy/events/folder-01/event-01.jpg")
            )
            {  
                $myPic     =   "/Alchemy/ajax/events/folder-01/event-01.jpg";
                echo $myPic;

                $myFile    =   ($_SERVER['DOCUMENT_ROOT'] . "/Alchemy/events/folder-01/event-01.txt");
                $fh        =   fopen($myFile, 'r');
                $theData   =   fread($fh, filesize($myFile));
                fclose($fh);

                echo $theData ;
            }
            else
            {
                echo "The file $myFile does not exist";
            }
        }
    }
?>

3 个答案:

答案 0 :(得分:4)

您需要应用header()并告诉PHP您正在渲染图片。

header("Content-type: image/jpeg");

OR取决于您要呈现的文件,请应用正确的标题。

答案 1 :(得分:1)

删除echo $myPic;,然后在echo $theData;

之前添加此内容
header("Content-type: image/jpeg");

通常,您必须通知浏览器您要发送的数据类型。另请注意,header()命令应位于开始向浏览器发送任何数据之前。

此外,如果您将操作多种文件类型(即:png,jpg,gif),您应该在deader命令中更改MIME类型以映射相应的文件类型。

header("Content-type: image/gif");   // For gif images
header("Content-type: image/png");   // For png images
header("Content-type: image/jpeg");   // For jpg images

答案 2 :(得分:0)

对于图像(或任何其他内容),您需要发送内容类型标题,否则将无法显示。您可以通过首先获取mime-type here然后在回显之前添加标头来执行此操作。

header("Content-Type: ". $mimetype);
echo $theData;

$mimetype是检索到的mime类型。