Foto wird nicht angelegt

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

  • Foto wird nicht angelegt

    Hallo ihr!

    Ich stehe vor einem Rätsel: Ich habe ein Uploadskript geschrieben, damit ich Fotos auf meinen WebSpace stellen kann.
    Allerdings will ich die Fotos in diesem Zusammenhang gleich auf 1280*960 verkleiner. Das Problem dabei ist, dass das Bild nicht angelegt wird und ich keine Ahnung habe woran das liegt. Denn komischerweise funktioniert das Script beim Erstellen von thumbnails.
    Hier mein Script, an dem ich nicht mehr weiterkomme:

    PHP-Code:
    function foto_verkleinern($ID$name)
    {     Echo 
    "FahrzeugID - $ID, Bildname: $name<br> erfolgreich hochgeladen!<br><br>";
        
    $namealt=$name;
        
    $name=strtolower($name);    
      echo 
    "<br>Name klein: $name";

      
      
    // Fotos auf 1280*960 verkleinern
      
    $image_file="../fotos/temp/$namealt"// in Temp ist Datei noch in Grossbuchstaben vorhanden
      
    $dest_file="../fotos/$name";  // Datei neu mit kleinbuchstaben
      
    echo "<br>Temp-Datei: $image_file";
      echo 
    "<br>Neu-Datei: $dest_file";
      
      
    $size=getimagesize($image_file);
      
    $breite=$size[0];
      
    $hoehe=$size[1];
      Echo 
    "<hr>Breite: $breite Pixel, Höhe: $hoehe Pixel";
      
      
    $image_big=imagecreatefromjpeg($image_file);
      
    $image_small=imagecreatetruecolor(1280,960);
      
      
    ImageCopyResampled($image_small,$image_big,0,0,0,0,1280,960,$breite,$hoehe);
      
    imagejpeg($image_small,$dest_file,80);
      echo 
    "<br>Foto auf 1280*960 verkleinert: $name";
      
      
      
      
    // gleich ein Thumbnail erzeugen
      
    $image_file="../fotos/$name";
      
    $dest_file="../fotos/thumb/$name";
      
    $size=getimagesize($image_file);
      
    $breite=$size[0];
      
    $hoehe=$size[1];
      
    $image_big=imagecreatefromjpeg($image_file);
      
    $image_small=imagecreatetruecolor(160,120);
      
    ImageCopyResampled($image_small,$image_big,0,0,0,0,160,120,$breite,$hoehe);
      
    imagejpeg($image_small,$dest_file,80);
      echo 
    "<br>Thumbnail erzeugt";
      
      
    //Temporäre Datei löschen
      
    $temp="../fotos/temp/$namealt";
      
    unlink($temp);

    Habt ihr bitte einen Hinweis, den ich überseh?

    Danke,
    ayin

  • #2
    mach mal am Anfang:
    error_reporting(E_ALL|E_STRICT);
    Du arbeitest da anscheinend mit einigen Dateien. Überall prüfen, ob PHP diese Dateien wirklich findet:
    var_dump(file_exists(....));

    Kommentar


    • #3
      Hallo!

      Also ich habe jetzt Error_Reporting eingefügt, es werden aber keine Fehler oder Warnungen gemeldet.
      Desweiteren habe ich überprüft ob die hochgeladene Datei exisitert und gefunden wird, auch das klappt.

      Ich habe dann zwecks Debug hinter jeder weiterer Folge ein Echo angefügt ob der jeweilige Befehl ausgeführt wird, aber nach der Zeile

      $image_small=imagecreatetruecolor(1280,960);

      habe ich keine Bildschirmausgabe mehr und das Skript hört scheinbar auf.

      JEtzt bin ich noch ratloser als vorher.
      Zuletzt geändert von ayin; 15.06.2009, 11:20.

      Kommentar


      • #4
        Mach doch or die('Fehler bla bla') mal hinten dran, dann weisst du wenigsten wo es hängt. Außerdem imagedestroy nicht vergessen sonst läuft dein Server voll.[COLOR=#000000][COLOR=#0000BB]
        [/COLOR][/COLOR]

        Kommentar


        • #5
          ini_set('display_errors', 1); hinzufügen, sonst nützt dir das error_reporting() anscheinend nichts.
          Für die Fehlerursache tippe ich mal aufs memory_limit.

          Kommentar


          • #6
            Ja, es ist das memory_limit. Mit kleineren Dateien hat es geklappt.
            Tja, da es nur ein gehosteter Webspace ist muss ich halt meine Fotos vorher verkleinern.

            Danke für eure Hilfe!

            Kommentar


            • #7
              Sorry, wenn ich nochmal störe. Aber da ich das Problem mit GD nicht hinkriege wollte ich es mal mit ImageMagick lösen, aber da passiert noch weniger.

              Ich habe ein Verzeichnis Test angelegt. Darin das Script und ein Probefoto. Das wollte ich verkleinern aber beim Script passiert rein gar nichts, auch keine Fehlermeldung

              PHP-Code:
              <?php

              error_reporting
              (E_ALL|E_STRICT);
              ini_set('display_errors'1);



                
              $image_file="testbild.jpg";
                list(
              $width$height) = getimagesize($image_file);
                echo 
              "Breite: $width, Höhe: $height";
                
              $image->new Imagick ('testbild.jpg');
                
              $image->resizeImage(800,600);
                
              $image->writeImage('scaled_testbild.jpg');
                
              $image->destroy(); 
              ?>
              ImageMagick ist aber auf meinem Webhost installiert, siehe Anhang:


              Was mach ich denn nun schon wieder falsch?
              Angehängte Dateien
              Zuletzt geändert von ayin; 23.06.2009, 16:47.

              Kommentar


              • #8
                Wenigstens das echo sollte doch irgendwas ausgeben. Bist du dir sicher, dass du diese Datei wirklich aufrufst und auch dieser Code drinsteht?

                Kommentar


                • #9
                  PHP-Code:
                  $image->new Imagick ('testbild.jpg'); 
                  Du nutzt offenbar eine Klasse. Ist die auch eingebunden? Sorry, hat es hier alles schoin gegeben .

                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Hm, nein, ich habe gar nichts eingebunden. Ich wüsste auch gar nicht wie?
                    Ich habe einfach lange gegoogelt und habe sehr oft einen Code wie den angeführten gefunden. Dann hab ich damit experimentiert, aber von Klasse einbinden hab ich nichts gelesen.
                    Wie geht denn das?
                    Und entschuldigung für die dummen Fragen.


                    EDIT: Nach langem Suchen im Internet habe ich die Lösung gefunden, ich musste einfach nur rudimentärer werden:

                    PHP-Code:
                    <?php

                    error_reporting
                    (E_ALL|E_STRICT);
                    ini_set('display_errors'1);

                    $thumb = new Imagick();
                    $thumb->readImage('testbild.jpg');

                    $height=$thumb->getImageHeight();
                    $width=$thumb->getImageWidth();
                    if (
                    $width 800$thumb->scaleImage(800,600,true);
                    if (
                    $height 600)$thumb->scaleImage(800,600,true); 
                    $thumb->writeImage('testbild_scaled.jpg');

                    echo 
                    "<img src=\"testbild_scaled.jpg\">";

                    $thumb->clear();
                    $thumb->destroy();
                     
                    ?>
                    Zuletzt geändert von ayin; 24.06.2009, 12:12. Grund: Lösung gefunden

                    Kommentar

                    Lädt...
                    X