Dateiverwaltung zeigt weiße Seite

Gesperrt
Luigi
Beiträge: 34
Registriert: Do 18. Nov 2004, 20:50
Kontaktdaten:

Dateiverwaltung zeigt weiße Seite

Beitrag von Luigi » Mo 18. Jul 2005, 15:06

Ich habe festgestellt, dass in manchen Verzeichnissen in der Dateiverwaltung nur eine leere weiße Seite angezeigt wird.

Dies kann die Folge dessen sein, dass in der Datei include.upl_files_overview.php aus irgendeinem Grund die Dateigröße eines Bildes nicht ermittelt werden kann. Dann stürzen die capiXXX-Funktionen ab.

Ich habe die Zeile

Code: Alles auswählen

                if (isset($con_cfg['thumb']['width']) && isset($con_cfg['thumb']['height'])) {
geändert nach

Code: Alles auswählen

                if (isset($con_cfg['thumb']['width']) && isset($con_cfg['thumb']['height']) && $filesize[$file] > 0) {

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 18. Jul 2005, 15:19

wie lautet denn die fehlermeldung die im errorlog.txt steht ohne diese änderung ?
*** make your own tools (wishlist :: thx)

Luigi
Beiträge: 34
Registriert: Do 18. Nov 2004, 20:50
Kontaktdaten:

Beitrag von Luigi » Di 19. Jul 2005, 09:07

emergence hat geschrieben:wie lautet denn die fehlermeldung die im errorlog.txt steht ohne diese änderung ?
Es gibt keine Fehlermeldung in der errorlog.txt.
Es muss wohl ein fataler Fehler auftreten, der nicht abgefangen werden kann.

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Dateiverwaltung zeigt weiße Seite

Beitrag von Oldperl » Di 19. Jul 2005, 09:33

Luigi hat geschrieben:

Code: Alles auswählen

                if (isset($con_cfg['thumb']['width']) && isset($con_cfg['thumb']['height'])) {
geändert nach

Code: Alles auswählen

                if (isset($con_cfg['thumb']['width']) && isset($con_cfg['thumb']['height']) && $filesize[$file] > 0) {
Und warum sollte das mit dieser Änderung funktionieren?

Die Schleife wird zwar jetzt nur durchlaufen wenn die Dateigröße auch >0 ist, aber falls eine der Variablen 'Höhe' oder 'Breite' nicht gesetzt ist, passiert das genauso wie davor nicht, da die Abfragen per 'UND' verknüpft sind und jede Bedingung zutreffen muß.

:roll: wäre auch nett beim nächstenmal ne Zeilennummer zu haben.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Luigi
Beiträge: 34
Registriert: Do 18. Nov 2004, 20:50
Kontaktdaten:

Re: Dateiverwaltung zeigt weiße Seite

Beitrag von Luigi » Di 19. Jul 2005, 10:03

So wie ich das sehe kommt die Dateigröße aus der DB.
Bei mir kam es vor, dass Höhe und Breite vorhanden waren, aber die Dateigröße war Null

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Dateiverwaltung zeigt weiße Seite

Beitrag von Oldperl » Di 19. Jul 2005, 13:27

Luigi hat geschrieben:So wie ich das sehe kommt die Dateigröße aus der DB.
Das siehst du falsch, in der 'include.upl_files_overview.php' Zeilen 71-87 steht folgendes

Code: Alles auswählen

$handle = opendir(".");
    $upl_protected = explode(",",$cfgClient['upl']['protected']);
    while ($file = readdir($handle))        {
            if ($path.$file."/" == $cfgClient[$client]["path"]["upload"].$path.$con_cfg['PathFrontendTmp']) {
             } else {
                    if(is_dir($file)) {
                            $dirlist[] = $file;
                    }
            }
            if(is_file($file) && !isset($filelist[$file])) {
                 savefile($path,$file);
                 //set the filelist,   description is emty
                 $filelist[$file] = "";
                 $filesize[$file] = filesize($cfgClient[$client]['upl']['path'].$path.$file);
            }
    }
    closedir($handle);
hier wird direkt aus dem Verzeichnis die Größe der Datei ($file) ermittelt und in das Array $filesize[Dateiname] geschrieben. Das heißt in $filesize steht kein Wert, wenn dieser nicht zu ermitteln ist.

Die Bildmaße werden ebenfalls direkt von der Datei genommen siehe Zeile 165

Code: Alles auswählen

//Imagesize
                $size = getimagesize($cfgClient[$client]['upl']['path'].$path.$file);
Da gibt es sicherlich mehrere Möglichkeiten warum deine Dateien nicht angezeigt werden, sollte dein Fehler aber mit deiner nachträglichen Änderung behoben sein, so tippe ich mal das beim upload der Dateien etwas schief gelaufen ist (0 Byte-files).
Möglich wäre auch das eine der eingebauten Array Sortierungen ( Zeilen 137 - 154) in deiner PHP-Version nicht mehr funktionieren, ich hab da irgendwas im Hinterkopf das sich da was getan hat in verschiedenen Versionen von PHP (aber nicht sicher :roll: )
Ist aber anhand deiner Fehlerbeschreibung so nicht nachvollziehbar.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 19. Jul 2005, 13:47

Oldperl, bitte sei so lieb und antworte ein Spur zurückhaltender - wir freuen uns über jeden Beitrag. Es wäre doch schade, wenn uns Bugs entgehen, weil sich der Poster nicht mehr traut ... :wink:

Genaugenommen hat Luigi recht (und es gab auch schon länger immer mal wieder das Problem, dass die Dateigröße in der Dateiverwaltung mit 0 angezeigt wird).

Die 'include.upl_files_overview.php' sieht so aus:

Code: Alles auswählen

    $sql="SELECT * FROM ".$cfg["tab"]["upl"]." WHERE idclient='$client' AND dirname='$path'";
    $db->query($sql);
    while($db->next_record()){
          if (!is_file($cfgClient[$client]["path"]["upload"].$path.$db->f("filename")))
          {
          	//echo "delete since ".$cfgClient[$client]["path"]["upload"].$path.$db->f("filename")." doesnt exist";
          	
          	$idupl = $db->f("idupl");
          	$sql = "DELETE FROM ".$cfg["tab"]["upl"]." WHERE idupl='$idupl'";
          	$db2->query($sql);
          } else {
          $filelist[$db->f("filename")]=$db->f("description");
          $filesize[$db->f("filename")]=$db->f("size");
          }
          

    }


    $handle = opendir(".");
    $upl_protected = explode(",",$cfgClient['upl']['protected']);
    while ($file = readdir($handle))        {
            if ($path.$file."/" == $cfgClient[$client]["path"]["upload"].$path.$con_cfg['PathFrontendTmp']) {
             } else {
                    if(is_dir($file)) {
                            $dirlist[] = $file;
                    }
            }
            if(is_file($file) && !isset($filelist[$file])) {
                 savefile($path,$file);
                 //set the filelist,   description is emty
                 $filelist[$file] = "";
                 $filesize[$file] = filesize($cfgClient[$client]['upl']['path'].$path.$file);
            }
    }
    closedir($handle);
Die erste Abfrage ermittelt die gespeicherten Daten aus der Datenbank (und die Filesize ist in <Prefix>_upl gespeichert). Die zweite Abfrage (auf dem Server) ermittelt neue Dateien, die bisher nicht in der DB enthalten sind.

Wenn also bei der Ermittlung oder der Speicherung der Dateigröße bei Erzeugung des Dateiverweiseses in der DB ein Fehler auftritt, kann sie tatsächlich 0 sein, obwohl die anderen Daten stimmen.

Ich gebe Dir aber insofern recht, als das man prüfen sollte, warum bei savefile($path,$file); u.U. die Dateigröße nicht abgespeichert wird. Ich bin aber der Meinung, dass dieser Fehler in V4.4.5 bereits behoben war - kann aber gerne mal jemand einen Blick werfen.

EDIT: Die Funktion savefile in functions.upl.php enthält dazu diese Zeile:

Code: Alles auswählen

$filesize = @filesize($cfgClient[$client]['upl']['path'].$path.$file);
U.U. kann bei der Ermittlung ein Fehler auftreten, durch das @ wird er unterdrückt - kann also schon passieren, dass da 0 raus kommt. @Luigi kommt das denn auch bei neuen Uploads vor? Welche C-Version?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Beitrag von Oldperl » Di 19. Jul 2005, 15:02

HerrB hat geschrieben:Oldperl, bitte sei so lieb und antworte ein Spur zurückhaltender - wir freuen uns über jeden Beitrag. Es wäre doch schade, wenn uns Bugs entgehen, weil sich der Poster nicht mehr traut ... :wink:
Sorry HerrB, so war das nicht gemeint, werde versuchen mich zu bessern :oops:

@Luigi
Ich hoffe du fühlst dich nicht auf den Füß getreten, wie gesagt, sollte ich den falschen Ton erwischt haben entschuldige ich mich dafür.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Luigi
Beiträge: 34
Registriert: Do 18. Nov 2004, 20:50
Kontaktdaten:

Beitrag von Luigi » Di 19. Jul 2005, 15:06

Also erstmal vielen Dank für die umfangreichen Postings. Damit hatte ich nicht gerechnet :wink:
@Luigi kommt das denn auch bei neuen Uploads vor? Welche C-Version?
Also in dieser Website kommt noch Contenido 4.4.4 zum Einsatz.

Und es scheint eher an manchen jpg-Dateien zu liegen.
Womöglich kein RGB-Farbraum und nicht 72 dpi.
Wenn ich diese entferne, dann gehts.

Oldperl
Beiträge: 4255
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Beitrag von Oldperl » Di 19. Jul 2005, 15:37

Luigi hat geschrieben:Und es scheint eher an manchen jpg-Dateien zu liegen.
Womöglich kein RGB-Farbraum und nicht 72 dpi.
Wenn ich diese entferne, dann gehts.
Das kann sein, ich habe das gleiche Problem bei einer Kundin in einem Shopsystem. Sie lädt auch Dateien im CMYK-Farbraum und mit 300 dpi hoch und da wurden teilweise Dateien auch nicht angezeigt.
Weiß nur noch nicht genau woran das liegt.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Di 19. Jul 2005, 15:55

wenn GD bzw ImageMagick kein CMYK unterstützt -> blame them ;)

chriz_the_wiz
Beiträge: 27
Registriert: Fr 23. Jun 2006, 14:13
Kontaktdaten:

Beitrag von chriz_the_wiz » Do 24. Aug 2006, 17:42

ich denke eher, dass die BROWSER kein CMYK unterstützen. Hab auch gerade lange dran gerätzelt, denke aber das ist das problem.

Gesperrt