DirectoryIterator()以某种方式复制路径

时间:2013-02-10 07:00:08

标签: php jquery ajax directory image-gallery

我正在尝试遍历目录并显示里面的所有图片。我得到它的工作,直到我将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)

1 个答案:

答案 0 :(得分:0)

原来我只需要将../添加到我的路径前面..如果它没有按照它的方式复制路径,我可能很早就想到了这个,但是因为我没有'我认为路径有问题。所以这里有完整的代码,我添加的只是路径前面的../

$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>";
}
相关问题