2013-11-04 43 views
0

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

<?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

'''' – Petah

+0

用你的替换我的线不能解决我的问题。我仍然可以看到带有折页角的小方框,而不是我的图像。 – Whoppa

回答

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" />'; 

依此类推。

+0

谢谢!它现在工作完美!只是好奇,什么时候需要指定标题类型? – Whoppa

+1

@Whoppa,如果您的输出是原始JPEG(二进制JPEG文件内容),PDF,PNG或任何不是HTML的文件,则需要设置其他标头。否则不。 –

+0

哦,我明白了。谢谢。 – Whoppa