使用PHP和Mysql从文件夹中读取图像

时间:2011-11-17 21:56:50

标签: php mysql

嗨,大家好,感谢您阅读此内容。我正在尝试从文件夹中读取几张照片。在我的表中,我得到了一个名为“path”的字段,这是我试图调用列表图像的文件夹的名称,因此我的代码是here(很抱歉,但我无法将我的代码应用于某些验证错误):

<?
$conexion = mysql_connect("localhost","miuser","mipass") or die("Error al conectar a la BD");
$db = mysql_select_db("midb");
$sql = "SELECT * FROM fotos";
$obj = mysql_query($sql) or die ("Error de query [".$sql."]");
?>
while($resultado = mysql_fetch_array($obj))
{
?>
<img width="210" height="138" src="images/media/<? echo $resultado["foto"];?>" />
}
?>
mysql_close($conexion);
?>

我尝试scandir但是我无法获得这种HTML输出格式:

title 1 (folder1)
image1.jpg
image2.jpg

然后是下一个文件夹

title 32 (folder32)
image1.jpg
image2.jpg
image3.jpg
image4.jpg

然后是另一个文件夹

title 54 (folder54)
image4.jpg
image77.jpg

就像你看到我需要列出文件夹内的图像,逐个文件夹内容。 所以一个例子就是:如果文件夹1里面有3个图像,那么代码应该在div中列出这3个图像。我希望这有帮助:/

3 个答案:

答案 0 :(得分:0)

<?php
function read_folder_directory($dir = "path")
    {
        $listDir = array();
        if($handler = opendir($dir)) {
            while (($sub = readdir($handler)) !== FALSE) {
                if ($sub != "." && $sub != ".." && $sub != "Thumb.db" && $sub != "Thumbs.db") {
                    if(is_file($dir."/".$sub)) {
                        $listDir[] = $sub;
                    }elseif(is_dir($dir."/".$sub)){
                        $listDir[$sub] = ReadFolderDirectory($dir."/".$sub);
                    }
                }
            }
            closedir($handler);
        }
        return $listDir;
    }
?>

使用:

<?php
$files = read_folder_directory ();

if ($files)
{
     foreach ($files as $file)
     {
           echo $file."<br/>"
     }
}
?>

查看示例 - http://php.net/manual/en/function.readdir.php

答案 1 :(得分:0)

$sql = "SELECT * FROM fotos";
$previousDirName = false;
$obj = mysql_query($sql) or die ("Error de query [".$sql."]");
while($resultado = mysql_fetch_array($obj)) {
  $dirName = pathinfo($resultado["foto"], PATHINFO_DIRNAME);
  if ( $dirName != $previousDirName ) {
    if ( $previousDirName ) { ?></div><? } 
    ?><div><div class="path"><? echo $dirName ?></div><?
  }
  ?><div class="photo"><img width="210" height="138" src="images/media/<? echo pathinfo($resultado["foto"], PATHINFO_BASENAME);?>" /></div><?
  $previousDirName = $dirName;
}
?></div><? // closes last path div
}

mysql_close($conexion);
?>

这假设“foto”字段是完整路径,而不是文件名。

答案 2 :(得分:0)

解决!我只是使用这样的代码:

$directorio = "images/media/".$objResult["full"]; 
$images = scandir($directorio);

非常感谢所有人:)