难以回应JPEG图像

时间:2013-11-04 04:10:33

标签: php

我在浏览器中回显图像时遇到了一些困难。我是PHP的新手,我一直在网上搜索过去的一小时而没有找到解决方案。我尝试将header('Content-Type: image/jpeg'); 添加到文档中,但它什么也没做。我希望我的代码扫描目录并将其所有图像文件放入$ thumbArray中,我将回显给浏览器。我的最终目标是照片库。将图像放入数组可以正常工作,但不会在页面上显示它们。这是我的代码:

  <?php

//Directory that contains the photos
$dir = 'PhotoDir/';

//Check to make sure the directory path is valid
if(is_dir($dir))
{
    //Scandir returns an array of all the files in the directory
    $files = scandir($dir);
}



//Declare array
$thumbArray = Array();

foreach($files as $file)
{
    if ($file != "." && $file != "..")     //Check that the files are images
        array_push($thumbArray, $file);   //array_push will add the $file to thumbarray at index count - 1
}


 print_r($thumbArray);


include 'gallery.html';

?>

继承了Gallery.html文件:

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Gallery</title>
</head>
<body>


    <?php
    header('Content-Type: image/jpeg'); 

    for($i = 0; $i < count($thumbArray); $i++)
     echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

    ?>

</body>
</html>

1 个答案:

答案 0 :(得分:4)

对于您当前的情况,只需从代码中删除header('Content-Type: image/jpeg');即可。您的输出是HTML。所有图像都在IMG标签内输出。在这种情况下,不需要额外的标题修改。

此外,如果您想使用PHP,请不要将此代码放在* .html文件中。它不会在默认的http-server设置的* .html内运行。将gallery.html重命名为gallery.php并将include 'gallery.html';更改为include 'gallery.php';,它会正常工作(当然,如果您还删除了header('Content-Type: image/jpeg');)。

第三件坏事是:

echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

您正在尝试将$dir变量放入单引号中。只有双引号允许你在里面使用PHP变量。

改变它:

echo '<img src="'.$dir.$thumbArray[$i].'" alt="Picture" />';

更改后,请查看页面的源代码并检查您的图像路径是否正确。如果不是,请采取措施纠正错误。例如,您可能忘记了目录分隔符,正确的字符串将是:

echo '<img src="'.$dir.'/'.$thumbArray[$i].'" alt="Picture" />';

等等。