Moin allerseits
Ich arbeite an einem Bildmanager, mit dem man Bilder für bestimmte Artikel/News/etc. auf einer Seite über ein Formular hochladen kann.
Dabei werden die Bilder je nachdem für was man gerade einen Artikel schreibt, oder ob es News sind, die Bilder über den Manager in entsprechende Unterordner auf dem Server hochgeladen (um eine gewisse Ordnung zu haben).
Über den Manager kann man sich Ordnerstruktur, sowie die Dateien im aktuellen Ordner anzeigen lassen. Die Struktur der Ordner geht nach /images/TYPE/ID/
Wird ein neuer Artikel erstellt (läuft über MySQL-Datenbank) und ein Bild für diesen Artikel hochgeladen, wird automatisch im entsprechenden TYPE Ordner ein Unterordner mit der ID des Artikels angelegt. Die Ordner haben alle die selben Zugriffsrechte über CHMOD.
Das Problem ist nun folgendes:
Beim auslesen des aktuellen Ordners werden einige Unterordner sowohl über den Befehl [COLOR=green]dir()[/COLOR] als auch [COLOR=green]opendir()[/COLOR] nicht erkannt/angezeigt.
Das Problem tritt beim auslesen der TYPE-Ordner auf. Mehrere ID-Ordner fehlen. Die ID-Ordner wurden wie gesagt alle über ein Script erstellt, ihre Rechte mit CHMOD auch alle gleich.
Ich bezweifele irgendwie das es sich hierbei um ein Codeproblem handelt.
Auch trat der witzige Effekt auf, das wenn ich mir einmal mit [COLOR=green]readdir()[/COLOR] über Echo den Inhalt ausgeben lasse, und danach noch einmal, das beim ersten Echo nur ein Teil der Unterordner, beim zweiten Echo ein ganz anderer Teil der Unterordner angezeigt wird.
Noch als Zusatzinfo:
Die Ordner werden (falls sie nicht schon existieren) mit folgendem Befehl erstellt
Schonmal vielen Dank im Vorraus für jegliche produktive Hilfe.
Ich arbeite an einem Bildmanager, mit dem man Bilder für bestimmte Artikel/News/etc. auf einer Seite über ein Formular hochladen kann.
Dabei werden die Bilder je nachdem für was man gerade einen Artikel schreibt, oder ob es News sind, die Bilder über den Manager in entsprechende Unterordner auf dem Server hochgeladen (um eine gewisse Ordnung zu haben).
Über den Manager kann man sich Ordnerstruktur, sowie die Dateien im aktuellen Ordner anzeigen lassen. Die Struktur der Ordner geht nach /images/TYPE/ID/
Wird ein neuer Artikel erstellt (läuft über MySQL-Datenbank) und ein Bild für diesen Artikel hochgeladen, wird automatisch im entsprechenden TYPE Ordner ein Unterordner mit der ID des Artikels angelegt. Die Ordner haben alle die selben Zugriffsrechte über CHMOD.
Das Problem ist nun folgendes:
Beim auslesen des aktuellen Ordners werden einige Unterordner sowohl über den Befehl [COLOR=green]dir()[/COLOR] als auch [COLOR=green]opendir()[/COLOR] nicht erkannt/angezeigt.
Das Problem tritt beim auslesen der TYPE-Ordner auf. Mehrere ID-Ordner fehlen. Die ID-Ordner wurden wie gesagt alle über ein Script erstellt, ihre Rechte mit CHMOD auch alle gleich.
Ich bezweifele irgendwie das es sich hierbei um ein Codeproblem handelt.
Auch trat der witzige Effekt auf, das wenn ich mir einmal mit [COLOR=green]readdir()[/COLOR] über Echo den Inhalt ausgeben lasse, und danach noch einmal, das beim ersten Echo nur ein Teil der Unterordner, beim zweiten Echo ein ganz anderer Teil der Unterordner angezeigt wird.
PHP-Code:
# $page_dir enthält den zu öffnenden Ordnernamen (z.B. "guides/clao/" )
if(is_dir("../test/website/images/".$page_dir))
{
$read_dir = opendir("../test/website/images/".$page_dir);
}
else $admin_status = "Error: Folder does not exist";
# Wenn man an dieser Stelle bereits mit readdir() einsetzt, fehlen die Unterordner, d.h. werden nicht aufgelistet.
// Get Directory-Listing
if(strpos($read_dir_name,"images/..") != FALSE)
{
$read_dir = opendir("../test/website/images/");
}
// Define File-Filter
$page_filter_false = preg_replace("/[0-9A-Za-z_]/i","",$page_filter);
if($page_filter_false == '')
{
$folder_array = array();
$image_array = array();
rewinddir($read_dir);
while($file = @readdir($read_dir))
{
// Get File/Directory Names
if($file != "." && $file != ".." && is_dir("../test/website/images/".$page_dir.$file))
{
$folder_array[] = $file;
}
else
{
if($page_filter != '' && strstr(strtolower($file),strtolower($page_filter)) == FALSE) $page_ok = 0;
elseif($page_filter != '') $page_ok = 1;
else $page_ok = 1;
# Für jedes Bild wird beim hochladen ein Thumbnail mit NAME_thumb erstellt
if($file != "." && $file != ".." && $file != "index.htm" && !strpos($file,"_thumb.") && $page_ok == 1)
{
$image_array[] = $file;
}
}
}
closedir($read_dir);
# [...] Mehr Code hiernach, aber hierfür wohl nicht relevant.
Noch als Zusatzinfo:
Die Ordner werden (falls sie nicht schon existieren) mit folgendem Befehl erstellt
PHP-Code:
mkdir("website/images/".$page_dir,0755);
Schonmal vielen Dank im Vorraus für jegliche produktive Hilfe.
Kommentar