Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Probleme beim Bilder hochladen mit thumbnails

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Probleme beim Bilder hochladen mit thumbnails

    Hallo Leute,
    ich hab hier Probleme beim hochladen der Bilder.
    Mein Ziel ist es in den Ordner temp/ das Originale Bild zu speichern und das verkleinerte in den Ordner pic/5.09/ ein 500 breite/höhe proportionales Bild hochzuladen und eine Thumbnail proportional 120 breite/höhe.

    Ich sitze hier schon halben Tag rum und Probiere es alleine zu schaffen aber jetzt wende ich mich mal an euch, kann mir jemand helfen?

    PHP-Code:
    <?php
    if (isset($rv_dologon))
    {
        
    $datei $_FILES['datei']['name'];
        
    $datei str_replace(" ""_""$datei");
        
    $datei htmlentities($datei); // Mit leerzeichen -> _ hab ich auch noch nicht getestet, sollte aba klappen
        
    $dateityp GetImageSize($_FILES['datei']['tmp_name']);
        if (
    $dateityp[2] == 2)
        {

            if (
    $_FILES['datei']['size'] < 3048000//max. Größe in bytes

            
    {
                
    move_uploaded_file($_FILES['datei']['tmp_name'], "temp/temp-$datei");
                
    $picordner date("ny");
                
    //$datei = date('jGis') . $_SESSION['user_id'];
                
    $file "temp/temp-$datei";
                
    $target "pic/$picordner/$datei";
                
    $max_width "500"//Breite ändern
                
    $max_height "500"//Höhe ändern
                
    $quality "90"//Qualität ändern (max. 100)
                
    $src_img imagecreatefromjpeg($file);
                
    $picsize getimagesize($file);
                
    $src_width $picsize[0];
                
    $src_height $picsize[1];

                if (
    $src_width $src_height)
                {
                    if (
    $src_width $max_width)
                    {
                        
    $convert $max_width $src_width;
                        
    $dest_width $max_width;
                        
    $dest_height ceil($src_height $convert);
                    }
                    else
                    {
                        
    $dest_width $src_width;
                        
    $dest_height $src_height;
                    }
                }
                else
                {
                    if (
    $src_height $max_height)
                    {
                        
    $convert $max_height $src_height;
                        
    $dest_height $max_height;
                        
    $dest_width ceil($src_width $convert);
                    }
                    else
                    {
                        
    $dest_height $src_height;
                        
    $dest_width $src_width;
                    }
                }
                
    $dst_img imagecreatetruecolor($dest_width$dest_height);
                
    imagecopyresampled($dst_img$src_img0000$dest_width$dest_height$src_width$src_height);
                
    imagejpeg($dst_img"$target"$quality);






                
    // Ab hier wird noch eine Thumbnail erstellt.
                
    $file2 "temp/$datei";
                
    $target2 "pic/$picordner/thumb-$datei";
                
    $max_width "120"//Thumbnailbreite
                
    $max_height "120"//Thumbnailhöhe
                
    $quality "90"//Thumbnailqualität
                
    $src_img imagecreatefromjpeg($file2);
                
    $picsize getimagesize($file2);
                
    $src_width $picsize[0];
                
    $src_height $picsize[1];

                if (
    $src_width $src_height)
                {
                    if (
    $src_width $max_width)
                    {
                        
    $convert $max_width $src_width;
                        
    $dest_width $max_width;
                        
    $dest_height ceil($src_height $convert);
                    }
                    else
                    {
                        
    $dest_width $src_width;
                        
    $dest_height $src_height;
                    }
                }
                else
                {
                    if (
    $src_height $max_height)
                    {
                        
    $convert $max_height $src_height;
                        
    $dest_height $max_height;
                        
    $dest_width ceil($src_width $convert);
                    }
                    else
                    {
                        
    $dest_height $src_height;
                        
    $dest_width $src_width;
                    }
                }
                
    $dst_img imagecreatetruecolor($dest_width$dest_height);
                
    imagecopyresampled($dst_img$src_img0000$dest_width$dest_height$src_width$src_height);
                
    imagejpeg($dst_img"$target2"$quality);

                
    unlink($file);
                echo 
    "<img src=\"pic/$datum-$userid.jpg\">";
            }

            else
            {
                echo 
    "<center><b>Das Bild darf nicht größer als 3MB sein</b></center>";
            }

        }

        else
        {
            echo 
    "<center><b>Bitte nur Bilder im JPG Format hochladen</b></center>";
        }
    }
    ?>

    <div>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <br>
    <br>
    <br>
    <input name="datei" type="file" size="50">
    <br>
    <br>
    </div>

    <div style="width:600px; padding:50px 0 30px 0; text-align:center;">
        <input type="submit" name="rv_dologon" value="Bild hochladen" style="width:200px; height:25px;" />
    </div>

    </form>

  • #2
    Folgende Fehlermeldung erhalte ich beim versuch eine Datei hochzuladen:

    PHP-Code:
    Warningimagecreatefromjpeg(temp/getImage.jpg): failed to open streamNo such file or directory in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 83 Warninggetimagesize(temp/getImage.jpg): failed to open streamNo such file or directory in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 84 Warningimagecreatetruecolor(): Invalid image dimensions in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 116 Warningimagecopyresampled(): supplied argument is not a valid Image resource in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 117 Warningimagejpeg(): supplied argument is not a valid Image resource in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 118 NoticeUndefined variabledatum in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 121 NoticeUndefined variableuserid in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 121 

    Kommentar


    • #3
      Oder kennt jemand einen ähnlichen script?

      Kann auch ohne thumbnail sein.

      Wäre nicht schlecht wenn das waserzeichen funktion dabei wäre.

      Kommentar


      • #4
        PHP-Code:
        <html>  
        <head>  
        <title>Upload</title>  
        </head>  
        <body>  
        <?  
        if($action){  
           // --------------------------------  
           // Diverse Variablen  
           // --------------------------------  
        $path = "bilder/"; // Url zum Speicherordner der großen Bilder  
        $thumb_path = "bilder_klein/"; // Url zum Speicherordner der Vorschaubilder  
        $config_width = "320"; // Bildbreite max. bei großem Bild  
        $config_height = "240"; // Bildhöhe max. bei großem Bild  
        $config_thumb_width = "80"; // Bildbreite max. bei Vorschaubild  
        $config_thumb_height = "60"; // Bildhöhe max. bei Vorschaubild  
        $resizequality = "70"; // Bildkompressionsrate 0-100  
        $deindomain = "http://www...........de/";  // unsere Domain  
        if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none')  
           {  
           // --------------------------------  
           // Get File Upload Info  
           // --------------------------------  

                 $filename = $HTTP_POST_FILES['pic_file']['name'];  
                 $filetype = $HTTP_POST_FILES['pic_file']['type'];  
                 $filetmp = $HTTP_POST_FILES['pic_file']['tmp_name'];  
           // --------------------------------  
           // Check file type  
           // --------------------------------  
           switch ($filetype)  
           {  
              case 'image/jpeg':  
              case 'image/jpg':  
              case 'image/pjpeg':  
                 $pic_filetype = '.jpg';  
                 break;  
              case 'image/png':  
              case 'image/x-png':  
                 $pic_filetype = '.png';  
                 break;  
              case 'image/gif':  
                 $pic_filetype = '.gif';  
                 break;  
              default:  
                 die("Falsches Dateiformat. Nur JPEG, GIF oder PNG erlaubt!");  
           }  
           // --------------------------------  
           // Generate filename  
           // --------------------------------  
           srand((double)microtime()*1000000);   // for older than version 4.2.0 of PHP  
           do  
           {  
              $pic_filename = md5(uniqid(rand())) . $pic_filetype;  
           }  
           while( file_exists($path . $pic_filename) );  

           // --------------------------------  
           // Move this file to upload directory  
           // --------------------------------  
           $ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';  
           if ( @$ini_val('open_basedir') != '' )  
           {  
              if ( @phpversion() < '4.0.3' )  
              {  
                 die("open_basedir is set and your PHP version does not allow move_uploaded_file<br /><br />Please contact your server admin");  
              }  
              $move_file = 'move_uploaded_file';  
           }  
           else  
           {  
              $move_file = 'copy';  
           }  
           $move_file($filetmp, $path . $pic_filename);  
           @chmod($path . $pic_filename, 0777);  

           // --------------------------------  
           // Well, it's an image. Check its image size  
           // --------------------------------  
           $pic_size = getimagesize($path . $pic_filename);  
           $pic_width = $pic_size[0];  
           $pic_height = $pic_size[1];  

           // --------------------------------  
           // This image is okay, we can cache its thumbnail now  
           // --------------------------------  
           if($pic_filetype != '.gif')  
           {  
              $gd_errored = FALSE;  
              switch ($pic_filetype)  
              {  
                 case '.jpg':  
                    $read_function = 'imagecreatefromjpeg';  
                    break;  
                 case '.png':  
                    $read_function = 'imagecreatefrompng';  
                    break;  
              }  
              $src = @$read_function($path  . $pic_filename);  
              if (!$src)  
              {  
                 $gd_errored = TRUE;  
                 $pic_thumbnail = '';  
              }  
              else if( ($pic_width > $config_thumb_width) or ($pic_height > $config_thumb_height) )  
              {  
                 // Resize it  
                 if ($pic_width > $pic_height)  
                 {  
                    $thumbnail_width = $config_thumb_width;  
                    $thumbnail_height = $config_thumb_width * ($pic_height/$pic_width);  
                 }  
                 else  
                 {  
                    $thumbnail_height = $config_thumb_height;  
                    $thumbnail_width = $config_thumb_height * ($pic_width/$pic_height);  
                 }  
                 $thumbnail = @imagecreatetruecolor($thumbnail_width, $thumbnail_height);  
                 $resize_function = 'imagecopyresampled';  
                 @$resize_function($thumbnail, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);  
              }  
              else  
              {  
                 $thumbnail = $src;  
              }  
              if (!$gd_errored)  
              {  
                 $pic_thumbnail = $pic_filename;  
                 // Write to disk  
                 switch ($pic_filetype)  
                 {  
                    case '.jpg':  
                       @imagejpeg($thumbnail, $thumb_path . $pic_thumbnail, $resizequality);  
                       break;  
                    case '.png':  
                       @imagepng($thumbnail, $thumb_path . $pic_thumbnail);  
                       break;  
                 }  
                 @chmod($thumb_path . $pic_thumbnail, 0777);  
              } // End IF $gd_errored  
           } // End Thumbnail Cache  

          // --------------------------------------  
          // OK lets resize the original picture  
          // --------------------------------------  
          if($pic_filetype != '.gif')  
          {  
            $gd_errored = FALSE;  
            switch ($pic_filetype)  
            {  
              case '.jpg':  
                $read_function = 'imagecreatefromjpeg';  
                break;  
              case '.png':  
                $read_function = 'imagecreatefrompng';  
                break;  
            }  
            $src = @$read_function($path  . $pic_filename);  
            if (!$src)  
            {  
              $gd_errored = TRUE;  
              $pic_resize = '';  
            }  
            else if( ($pic_width > $config_width) or ($pic_height > $config_height) )  
            {  
              // Resize it  
              if ( (($pic_width / $pic_height) > ($config_width / $config_height)) )  
              {  
                $resize_width = $config_width;  
                $resize_height = $config_width * ($pic_height/$pic_width);  
              }  
              else  
              {  
                $resize_height = $config_height;  
                $resize_width = $config_height * ($pic_width/$pic_height);  
              }  
              $resize = @imagecreatetruecolor($resize_width, $resize_height);  
              $resize_function = 'imagecopyresampled';  
              @$resize_function($resize, $src, 0, 0, 0, 0, $resize_width, $resize_height, $pic_width, $pic_height);  
            }  
            else  
            {  
              $resize = $src;  
            }  
            if (!$gd_errored)  
            {  
              $pic_resize = $pic_filename;  
              // Write to disk  
              switch ($pic_filetype)  
              {  
                case '.jpg':  
                  @imagejpeg($resize, $path . $pic_resize, $resizequality);  
                  break;  
                case '.png':  
                  @imagepng($resize, $path . $pic_resize);  
                  break;  
              }  
              @chmod($path . $pic_resize, 0777);  
            } // End IF $gd_errored  
          } // End Picture Resize  
         echo "$filetype<br>";
         echo "$filename<br>";
         
              echo "Datei ist auf dem Server! <br><br>";  
              echo "Url des großen Bildes: <a href=\"$deindomain$path$pic_filename\" target=\"_blank\">".$deindomain.$path.$pic_filename;  
             echo "</a> <br><img src=\"$deindomain$path$pic_filename\"><br><br>";  
              echo "Url des Vorschaubildes: <a href=\"$deindomain$thumb_path$pic_filename\" target=\"_blank\">".$deindomain.$thumb_path.$pic_filename;  
             echo "</a> <br><img src=\"$deindomain$thumb_path$pic_filename\">";  
           }  
        } else { ?>  
        <form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">  
        <input type="hidden" name="MAX_FILE_SIZE" value="4000000">  
        <br>  
        <strong>File Upload</strong> <br>  
        <br>  
        <input name="pic_file" type="file" size=40>  
        <br>  
        <br>  
        <input type="submit" name="action" value="Speichern">  
        </form>  
        <?  
         }  
           // -----------------------------------------  
           // Das Script kann unter Verwendung  
           // dieses Vermerks uneingeschränkt  
           // genutzt / verändert werden.  
           //  © www.marc-gutt.de  
           // -----------------------------------------  
        ?>  
        </body>  
        </html>

        Kommentar


        • #5
          Wasserzeichen könnte so aussehen

          PHP-Code:
             $imgzeichen imagecreatefrompng('watermark.png');
             
          imagecopy($image_p$imgzeichen01000600600); 
             
             
          imagejpeg($image_p"fotos/foto.jpg"30); 

          Kommentar


          • #6
            Naja, da steht ja recht genau, was nicht klappt:

            Zitat von AnnyKey Beitrag anzeigen
            Code:
            Warning: imagecreatefromjpeg(temp/getImage.jpg): failed to open stream: No such file or directory in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 83
            Warning: getimagesize(temp/getImage.jpg): failed to open stream: No such file or directory in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 84
            Soll wohl heißen, die Datei gibt es nicht. Vermutlich ist der Pfad nach temp falsch. Probier mal einen kompletten Pfad oder was mit ./ am Anfang.

            Der Rest bedeutet einfach nur, dass Du nicht alle Fehler ignorieren solltest, sondern Rückgabewerte auch mal überprüfen solltest.

            Zitat von AnnyKey Beitrag anzeigen
            Code:
            Warning: imagecreatetruecolor(): Invalid image dimensions in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 116 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 117
            Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 118
            Notice: Undefined variable: datum in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 121
            Notice: Undefined variable: userid in /var/www/vhosts/domain.de/httpdocs/bilder_verwalten.php on line 121

            Kommentar


            • #7
              Dein Thread-Titel ist schlecht bzw. unglücklich gewählt. Bitte ändere diesen und beachte dabei Bitte aussagekräftige Threadtitel verwenden

              Kommentar


              • #8
                Gerade noch gesehen, dass Du total wirr mit den Dateinamen umgehst.

                PHP-Code:
                <?
                  move_uploaded_file(... "temp/temp-$datei");
                ...
                  $file = "temp/temp-$datei";
                  $target = "pic/$picordner/$datei";
                ...
                  $src_img = imagecreatefromjpeg($file);
                  $picsize = getimagesize($file);
                ...   
                  $file2 = "temp/$datei";
                  $target2 = "pic/$picordner/thumb-$datei";
                ...
                  $src_img = imagecreatefromjpeg($file2);
                  $picsize = getimagesize($file2);
                ?>
                Da stimmen die Namen nicht ueberein wuerde ich sagen.

                Kuenftig solltest Du mal ordentlich angeben, welche Zeile die betroffene ist. Keiner hat Lust, sich Zeile 84 abzuzaehlen.

                Kommentar


                • #9
                  erledigt

                  Kommentar

                  Lädt...
                  X