thumbail erzeugen - auf dem einen server geht's, auf dem andern nicht - warum?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • thumbail erzeugen - auf dem einen server geht's, auf dem andern nicht - warum?

    Hallo,
    ich hab folgendes Problem: ich möchte ein bild auf meinen server hochladen, verkleinern und abspeichern. ist ja eigentlich kein problem, da gibt es ja genügend skripte dazu.

    ich gehe jetzt zum testen mal davon aus, dass das bild schon auf dem server ist und will ich einfach einen thumbnail erzeugen und abspeichern, dazu nutze ich folgendes skript:

    <?
    $PicPathIn="original/"; // Pfad Original Bilder
    $PicPathOut="upload/"; // Pfad kleine Bilder
    $picbreite = 100; // 100 Pixel soll Bild breit sein

    ###

    // Orginalpic
    $bild="beispiel.jpg";
    // Bilddaten feststellen
    $size=getimagesize("$PicPathIn"."$bild");
    $breite=$size[0];
    $hoehe=$size[1];
    $neueBreite=$picbreite;
    $neueHoehe=intval($hoehe*$neueBreite/$breite);

    if($size[2]==1) {
    // Es ist ein GIF
    $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
    $neuesBild=ImageCreate($neueBreite,$neueHoehe);
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
    $neueHoehe,$breite,$hoehe);
    ImageGIF($neuesBild,"$PicPathOut"."tn_"."$bild");
    }

    if($size[2]==2) {
    // Es ist ein JPG
    $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
    $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe);
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
    $neueHoehe,$breite,$hoehe);
    ImageJPEG($neuesBild,"$PicPathOut"."tn_"."$bild");
    }

    if($size[2]==3) {
    // Es ist ein PNG
    $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
    $neuesBild=ImageCreate($neueBreite,$neueHoehe);
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,
    $neueHoehe,$breite,$hoehe);
    ImagePNG($neuesBild,"$PicPathOut"."tn_"."$bild");
    }

    ###
    // AUSGABE

    echo "Original Bild: < BR >";
    echo "< IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\">< BR >< BR >";
    echo "Neue Grösse:< BR >";
    $Tumbnail= $PicPathOut."tn_".$bild;
    echo "< IMG SRC =\"$Tumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
    ?>


    Und nun funktioniert es auf meinem Server nicht, aber es funktioniert auf einem anderen - aber warum?

    GD funktioniert, d.h. wenn ich es nicht abspeichere sondern nur ausgebe funktionierts - aber das Abspeichern geht eben nicht.

    Ist es eventuell möglich, dass ich mich bei meinem Server irgendwie einloggen muss, bevor ich da was hochladen bzw. speichern kann? und wenn ja, wie?

    Ich danke euch schon mal ganz sehr für eure Hilfe!

    blackmole

  • #2
    Also zum einen wäre es schön wenn Du die PHP Highlight Funktion vom Forum nutzen würdest (Der code wird lesbarer), zum andern kingt es als wenn die Schreibrechte nicht vorhanden wären?!

    Schon überprüft?
    Mit freundlichen Grüßen
    Werner

    Kommentar


    • #3
      danke für die antwort, wie kann ich denn die schreibrechte überprüfen?

      Kommentar


      • #4
        Na via FTP prüfen wie der CHMOD für den Ordner gesetzt ist
        Mit freundlichen Grüßen
        Werner

        Kommentar


        • #5
          sorry, ich hab davon leider nich soviel ahnung, wie mach ich denn das? also ich kann auf den ordner per ftp was hochladen, aber wie find ich denn den chmod raus?

          Kommentar


          • #6
            Einfach mal googlen: http://www.google.de/search?hl=de&q=...le-Suche&meta=

            > als 500.000 Treffer
            Mit freundlichen Grüßen
            Werner

            Kommentar


            • #7
              also, ich hab jetzt das chmod auf lesen,schreiben und ausführen für die betroffenen ordner gesetzt, das hat aber nichts bewirkt.
              woran kann es jetzt noch liegen?

              danke schon mal.

              Kommentar


              • #8
                Lies mal die Regeln, Stichwort error_reporting().

                Kommentar


                • #9
                  schon klar, das error reporting ist auch an, hier die ausgabe die es jedes mal anzeigt:

                  PHP-Code:
                  Warningimagejpeg(): Unable to access kleinebilder/tn_beispiel.jpg in /var/www/web123/html/rangers/verband/test_funktioniert.php on line 37 
                  das sagt ja nun (meiner meinung nach) aus, dass er es nicht schafft das bild in den anderen ordner zu verschieben.
                  denn er kopiert ja erst das bild und dann verkleinert er es.

                  was meinst du dazu, woran kann's noch liegen?

                  Kommentar


                  • #10
                    Das kann auch heißen, daß das Verzeichnis bzw. die Datei gar nicht existiert.

                    Kommentar


                    • #11
                      /var/www/web123/html/rangers/verband/kleinebilder existiert nicht oder
                      der Webserver-User (meist wwwrun oder nobody) darf nicht darin schreiben oder
                      die Datei /var/www/web123/html/rangers/verband/kleinebilder/tn_beispiel.jpg existiert bereits und der Webserveruser hat kein Schreibrecht für sie.

                      Kommentar


                      • #12
                        also der ordner existiert (und wie gesagt, auf nem andern server läuft das skript ja) und dann habe ich die chmod-einstellungen so eingestellt, dass jeder schreiben und lesen kann.
                        was kann ich dann noch tun, um dem user die rechte zu geben?

                        Kommentar


                        • #13
                          Wenn es auf einem anderen Server läuft, dann vergleiche doch die Ausgaben von phpinfo(), die Verzeichnisstruktur und Zugriffsrechte beider Server miteinander. Irgendwas ist anders ... vielleicht hat es was mit safe_mode/basedir zu tun oder Quota oder oder oder.

                          Kommentar


                          • #14
                            ist es nicht irgendwie möglich, dass ich dem benutzername und passwort des ftp-accounts gebe und dann mittel ftp_connect($HOST); zu dem ftp-account verbinde.
                            wenn ja, wie müsste dann das skript aussehen?

                            Kommentar


                            • #15
                              Original geschrieben von blackmole86
                              ist es nicht irgendwie möglich, dass ich dem benutzername und passwort des ftp-accounts gebe und dann mittel ftp_connect($HOST); zu dem ftp-account verbinde.
                              wenn ja, wie müsste dann das skript aussehen?
                              Na, es müßte halt die FTP-Funktionen nutzen

                              Ich würde davor aber nochmal alles genauestens durchschauen und Spaßeshalber auch mal mit absoluten Pfaden arbeiten. Dann schauen, du eine normale Datei mit fwrite() geschrieben kriegst und mit is_dir(), ob PHP das Verzeichnis sieht. Und sicherstellen, daß es leer ist.

                              Kommentar

                              Lädt...
                              X