[PHP] Thumbnails



  • Hast du mal gesachaut, ob die Funktionsnamen richtig zusammengesetzt werden (z.B. "imagecreatefrom".types[imagedata[2]])



  • Wie schon gesagt, das Skript hat vor 3 - 4 Wochen noch einwandfrei funktioniert, deshalb würde ich einen Fehler im Code eher ausschließen und eher richtig GD oder PHP-Version tippen.



  • Ich kann dann eigentlich auch nicht mehr groß was dazu sagen 🙄
    Du musst eben versuchen den Fehler so weit wie möglich einzugrenzen (also schauen, wo das Script nicht mehr so läuft wie es soll 😉
    Ist z.B. $image zu Beginn der richtige Pfad und dann ein korrektes Bild und wie sieht $thumb nach imagecopyresized aus? Arbeitet ectl. imagecopyresized nicht mehr richtig - imagecopyresampled?



  • Hm, ok, ich hab das mal ein wenig genauer untersucht und bin jetzt eigentlich noch verwirrter als vorher, der Fehler liegt nämlich genau an dieser Stelle:

    $image = fopen ($image, "rb"); // $image ist ordentlich 
                                   // gesetzt und fopen ist erfolgreich
    
    fpassthru($image); // irgendwie funktioniert das nicht, 
                       // die Funktion gibt immer false zurück ???
    
    fclose ($image);
    


  • Sprich das TN-Image liegt richtig auf der Server-Platte?! Hast du es mal mit readfile anstelle von fopen/fpassthru/fclose versucht?



  • Hm, also ich habe das ganze mal ein wenig verändert, so:

    if(!file_exists($image))
    	echo("Bild (" . $image . ") nicht vorhanden !");
         if(!is_readable($image))
    	echo("Bild nicht einlesbar !");
         if(!is_writable($image))
    	echo("Bild nicht einlesbar !");
         if(!readfile($image))
    	echo("Ausgabe des Bildes (" . $image . ") schlug fehl !!!");
    

    Als Ausagebe bekomme ich dann dies hier:
    *
    Bild (bilder/cache/13.jpg) nicht vorhanden !
    Bild nicht einlesbar !
    Bild nicht einlesbar !
    Ausgabe des Bildes (bilder/cache/13.jpg) schlug fehl !!!
    *

    Obwohl das Bild eindeutig vorhanden ist findet er es nicht 😕
    Wenn ich die komplette URL angebe meckert er schon viel früher, dass es die Datei nicht finden konnte, obwohl die mit dem Browser über diese Adresse erreichbar ist. Die Zugriffsrechte stimmen aber meiner Meinung nach:
    Owner: wwwrun
    Group: www
    Permission: -rw-r--r--



  • also du darfst natürlich nicht den absoluten Pfad in der Form (http://...) angeben, aber hasst du es mal mit dem lokal absoluten (hört sich blöd an - ich meine wie unter Windows z.B. C:\WWW\bilder\chache\image.jpg) ausprobiert - schau dir dazu evtl. mal phpinfo() an, um rauszubekommen wie du den Pfad dann automatisch auslesen kannst)
    Außerdem wirst du für die Datei evtl. Schreibrechte benötigen (zumindest für das Verzeichnis), da die TN ja autmatisch per Script erstellt werden 🙂



  • Schreib- und Leserechte habe ich im Cache-Verzeichnis (drwxr-xr-x), das Thumbnail wurde ja auch schon erstellt, er versucht jetzt also auf den Cache zuzugreifen, aber meldet mir immer, er konnte die Datei nicht finden, obwohl sie eindeutig exisistert, das Bild hat die Rechte -rw-r--r--. Auch mit absoluter lokaler Pfadangabe funktioniert das nicht 😕

    Wenn ich jetzt folgendes aufrufe:
    http://www.yxz.net/thumb.php?image=bilder/13.jpg&x=30&y=30&aspectratio=1
    ... dann sagt er mir, er kann das Bild nicht finden.

    Wenn ich aber jetzt das Thumb direkt aufrufe:
    http://www.xyz.net/bilder/cache/13.jpg
    ... dann wird das Bild ohne Probleme angezeigt.



  • du musst eben wie schon gesag mal die verschiedenen Möglichkeiten im Script auf dei Datei zu verweisen ausprobieren



  • Hm, also ich habe alle Arten auf die Datei zu verweisen ausprobiert und es klappt immer noch nicht.
    Das Orginalbild existiert und das Thumb ist auch korrekt erzeugt worden, sofern ich aber mit if(!file_exists($image)){} die Existenz überprüfen will, wird ausgegeben, das Bild existiert nicht. Egal ob ich das Bild mit /home/www/.../html/bilder/cache/bild.jpg, bilder/cache/bild.jpg oder http://www.xyz.net/bilder/cache/bild.jpg anspreche. Ich weiß echt nicht mehr weiter 😞



  • http://de3.php.net/manual/de/function.file-exists.php

    guck mal ob nach is_writeable und is_readable

    Anonsten würde ich mal deinen Provider ansprechen, was der gemacht hat!



  • Welcher Pfad wird denn zum erzeugen der TN, verwendet, oder werden die gleich mit dem Upload erzeugt?



  • Zum erzeugen der TN wird der normale lokale Pfad verwendet, also bilder/cache/bald.jpg. Is_writable und is_readable geben beide false zurück. Komisch ist ja wie schon gesagt, dass der Thumbnail-Skript vor 2 Monaten noch ohne Probleme funktioniert hat.



  • Achso, aber jetzt werden die TN auch nicht mehr korrekt erzeugt?!
    Hast du wirklich alle denkbaren Möglichkeiten den Pfad anzugeben ausprobiert? Bekommst du denn einen Warnung angezeigt?



  • Nein, die TNs werden nach wie vor korrekt erzeugt, bloß das Skript liest sie ein und gibt so aus, bloß leider schlägt das einlesen ohen Grund fehl, weil die Datei angeblich nicht existiert. Ich habe wirklich alle möglichen Pfadangaben ausprobiert, hilft nichts.



  • Nochmal: welcher Pfad wird denn beim Erzeugen der TN aus dem normalen Bild verwendet? Oder geschieht dies direkt nach dem Upload 🙄



  • Wie oben schon geschrieben, das Thumbnail wird erst erzeugt, wenn der entsprechende Skriptaufruf mit dem Bild als Parameter kommt. Bzw, wird zuerst geschaut, ob das entsprechende Bild nicht schon gecacht ist. Der Pfad der zum erzeugen der Thumbs verwendet wird ist in diesem Fall bilder/cache/.



  • Du scheinst nicht ganz zu verstehen, worauf ich hinaus will 😉
    Ich meinte, dass zur Erzeugung der TN diese ja auch erst geladen werden müssen. Den Pfad, der dort verwendet wurde kannst du dann ja nachher auch verwenden 🙄



  • Der Pfad, der zur Erzeugung der TNs benutzt wird, wird auch fürs Laden der Bilder dann genutzt.



  • das ist dann aber mal extremst verwunderlich - ich weiß da leider dann auch nicht mehr weiter 😞


Anmelden zum Antworten