【问题标题】:Get image from PHP displaying using an img src使用 img src 从 PHP 显示获取图像
【发布时间】:2019-06-13 17:51:02
【问题描述】:

我拥有的代码应该从目录中的文件列表中输出 jpg,但事实并非如此。我搜索了这个网站并尝试了不同的方法,但没有帮助。我是 php 的相对初学者,所以寻求任何帮助。

我尝试在 php 代码中使用 img src,但我试图让图像显示在 Wordpress 帖子中,因此我无法在脚本中回显 img src。我也尝试过 file_get_contents 并读取文件,但可能是我缺乏知识阻碍了我。

<?php
$imagepath = htmlspecialchars($_GET["image"]);
$imagenum = htmlspecialchars($_GET["num"]);

define('LOCALHOST', 'localhost' === $_SERVER['SERVER_NAME'] );

If(LOCALHOST){
    define('PATH_IMAGES', 'this_path');
}else{
    define('PATH_IMAGES', '../../../Images/');
}

$arrnum = $GLOBALS[imagenum] - 1;
$dirname = PATH_IMAGES . $GLOBALS[imagepath]."/";
$images = scandir($dirname);
rsort($images);
$ignore = Array(".", "..");
foreach($images as $curimg){
    if(!in_array($curimg, $ignore)) {
        header('Content-type: image/jpeg');
        file_get_contents('$dirname$images[$arrnum]');

        }
    }                 
?>

【问题讨论】:

  • 假设您发送正确的图像类型(您确定它们都是 jpeg 图像)与标题,您可以使用file_get_contents() 来渲染图像,但您需要回显图像...
  • 当我使用以下行时: echo file_get_contents($dirname.$images[$arrnum]);我遇到了与 readfile 相同的问题 - 它将蓝色方块放在页面上,如果我直接加载 php,我会得到很多乱码等
  • 那么听起来好像不是jpg文件,你试过 var dump $images 只是为了看看它拉进了哪些文件?
  • $图像的var转储是字符串(45)“192.168.1.jpg”字符串(45)“192.168.1.jpg”String(45)“192.168.1.108_01_20181226154000368_timing.jpg " 字符串(45)
  • 刚刚注意到,您似乎忘记了$dirname$images[$arrnum] 之间的串联. - 使用:file_get_contents($dirname . $images[$arrnum]);

标签: php html


【解决方案1】:

你试过 readfile(...);应该读取并输出文件。在您的示例中,您没有输出图像数据

http://php.net/manual/en/function.readfile.php

【讨论】:

  • 我已经用 readfile 替换了 file_get_contents - 它仍然只显示将 img src 放在 WP Post 上的蓝色方块。当我使用正确的变量直接加载 php 时,它只显示全屏的字母数字和菱形问号
  • 如果屏幕上满是字母和数字,那么这听起来像是 content-type 的问题。你可以试试 Content-Type(大写 T)我似乎记得关于那个的一些事情......
  • 我已经把 t 改成了 T 也没什么区别
猜你喜欢
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 2013-02-25
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多