首页 > 解决方案 > eModal 显示二进制数据而不是图像

问题描述

我有一个 eModal ( http://saribe.github.io/eModal ) 对话框,我想在其中显示图像。不幸的是,当我运行时,eModal.ajax('/path/to/image.jpg','View Image');我看到我的模态充满了二进制数据,而不是我所期望的图像。我已经验证 /path/to/image.jpg 是有效的,并且可以自行加载。有任何想法吗?我是以错误的方式调用 eModal.ajax() 还是什么?

编辑:所以我也尝试使用 iframe 加载图像,因为 eModal 应该允许轻松处理 iframe。同样的问题。奇怪的是,如果我在单独的浏览器选项卡(不是 eModal 窗口)中打开设置 iframe 的页面,它会很好地显示我的图像。只有在 eModal 对话框中加载它时,它才会出于某种奇怪的原因显示二进制数据。

第二次编辑:我还尝试制作一个名为 getfile.php 的辅助 PHP 脚本,它只是将图像输出到浏览器,同时确保发送以发送正确的内容类型。下面是我的 getfile.php 代码,它工作正常,除了在模式中。同样的问题。此外,我发现以下问题似乎引发了同样的问题,但没有建议的解决方案对我有用:Lightbox 显示垃圾字符而不是图像

<?php
$file = $_REQUEST['img'];


if (file_exists($file))
{
    $size = getimagesize($file);

    $fp = fopen($file, 'rb');

    if ($size and $fp)
    {
        header('Content-Type: '.$size['mime']);
        header('Content-Length: '.filesize($file));

        fpassthru($fp);

        exit;
    }
}

?>

附件是显示它显示的内容而不是图像的屏幕截图:eModal 显示二进制数据而不是图像

标签: javascriptphpjqueryhtmlmodal-dialog

解决方案


推荐阅读