我试图遍历目录并显示其中的所有图片。在将Jquery / ajax添加到方程式之前,我一直在使用它。.在某种程度上,路径一直在重复,因此出现此错误(您可以看到它在哪里重复):Fatal error: Uncaught exception 'UnexpectedValueException' with message 'DirectoryIterator::__construct(images/gallery/album1,images/gallery/album1) [<a href='directoryiterator.--construct'>directoryiterator.--construct</a>]: The system cannot find the path specified
我无法为自己的生活弄清楚为什么会这样出现... contruct(images/gallery/album1,images/gallery/album1)
应该是construct(images/gallery/album1)
PHP:
$album = $_POST['album'];
$dir = new DirectoryIterator("images/gallery/$album");
foreach ($dir as $fileInfo)
{
if($fileInfo->isDot()) continue;
$pic = $fileInfo->getFilename();
print "<div>
<img src='images/gallery/$album/$pic'>
</div>";
}
jQuery / ajax:
function albumChosen(id)
{
var id = id;
var album = $('a[id="'+id+'"]').attr("rel");
$.ajax({
url: "PHPscripts/getAlbums.php",
type: "POST",
data: {'album' : album},
success: function(data){
$('#galleryList').html(data);
}
});
return false;
}
如果我
alert(album);
它正确显示'album1'。因此,它与如何从$_POST
读取它有关编辑:
我添加了建议的代码。
$album = $_POST['album'];
print_r($_POST);
var_dump($album);
$dir = new DirectoryIterator("images/gallery/$album");
//rest of code...
print_r($_POST)
打印出Array ( [album] => album1 )
var_dump($album)
打印出string 'album1' (length=6)
最佳答案
事实证明,我只需要在路径的前面添加../
。如果它没有按照它的方式复制路径,我可能会早点想到的,但是因为这个原因,我认为没有任何东西路径错误。所以这里是完整的代码,再次添加的只是路径前面的../
。
$album = $_POST['album'];
$dir = new DirectoryIterator("../images/gallery/$album");
foreach ($dir as $fileInfo)
{
if($fileInfo->isDot()) continue;
$pic = $fileInfo->getFilename();
print "<div>
<img src='images/gallery/$album/$pic'>
</div>";
}