0

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

搜索.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";
            }
        }
    }
?>
4

3 回答 3

4

您需要申请header()并告诉PHP您正在渲染图像。

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

或者根据您正在渲染的文件,应用适当的标题。

于 2013-10-01T08:24:11.957 回答
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
于 2013-10-01T08:27:05.780 回答
0

对于图像(或与此相关的任何其他内容),您需要发送内容类型标头,否则将不会显示。您可以通过首先在此处获取 mime 类型,然后通过在 echo 之前执行此操作来添加标头来做到这一点。

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

$mimetype检索到的 mime 类型在哪里。

于 2013-10-01T08:25:52.173 回答