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


Read image from folder with PHP and Mysql

大家好,感谢阅读本文。我正试着从文件夹里读几张照片。在我的表中,我有一个名为"路径"的字段,这是我试图调用以列出图像的文件夹的名称,所以我的代码在这里(很抱歉,我无法应用我的代码,有些验证错误(:

<?
$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个图像。我希望这能有所帮助:/

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

$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"字段是完整的路径,而不仅仅是文件名。

已解决!我只是用了一些这样的代码:

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

所以感谢大家:(