Ankündigung

Einklappen
Keine Ankündigung bisher.

Resized Image in DB speichern

Einklappen

Neue Werbung 2019

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

  • Resized Image in DB speichern

    Hallo liebe Leudde,

    folgendes Problem:

    Ich möchte gerne das Bild (z.B. 3264 x 2448 Pixel) Bild neu (1024 x 768 Pixel) nach dem Formular einlesen in die Datenbank speichern (das resizede Image...). Loka gehts aber nicht in die DB??

    Bitte um Hilfe...

    PHP-Code:
    $Grafikdatei $_FILES['datei']['name'];
                                    
    $dateityp getimagesize($Grafikdatei);
                                    
    $OriginalBreite $dateityp[0];
                                    
    $OriginalHoehe $dateityp[1];
                                    
    $NeueBreite 1024;
                                    if(
    $OriginalBreite $NeueBreite){
                                        
    $NeueBreite $OriginalBreite;
                                    }
                                    
    $Skalierungsfaktor $OriginalBreite/$NeueBreite;
                                    
    $Neue_Hoehe intval($OriginalHoehe/$Skalierungsfaktor);

                                    if(
    $dateityp[2] == 1){
                                        
    $Originalgrafik ImageCreateFromGIF($Grafikdatei);
                                        
    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                        
    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                        
    ImageGIF($Thumbnailgrafik$Grafikdatei100);
                                    }
                                    elseif(
    $dateityp[2] == 2){
                                        
    $Originalgrafik ImageCreateFromJPEG($Grafikdatei);
                                        
    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                        
    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                        
    ImageJPEG($Thumbnailgrafik$Grafikdatei100);
                                    }
                                    elseif(
    $dateityp[2] == 3){
                                        
    $Originalgrafik ImageCreateFromPNG($Grafikdatei);
                                        
    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                        
    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                        
    ImagePNG($Thumbnailgrafik$Grafikdatei100);
                                    }
                                    
    move_uploaded_file($Grafikdatei"../images/".$Grafikdatei); 


  • #2
    Du kannst natürlich Bilder auch in der Datenbank speichern (Feldtyp: Blob). Das ist aber sehr unsinnig. Speichere die Bilder lieber lokal auf dem Dateisystem und hinterlege nur den Dateipfad in der Datenbank
    sigpic

    Kommentar


    • #3
      Hallo Frank!
      Ich speichere den Pfad etc. in der DB:

      PHP-Code:
      $sql mysql_query("INSERT INTO bilder SET galerie_titel='".$galerie_titel."',bild_titel='".$bild_titel."', 
                                      bild_pfad='"
      .$bild_pfad."',bild_name='".$bild_name."',bild_beschreibung='".$bild_beschreibung."',timestamp='".$timestamp."'"); 
      jedoch funnktioniert das speichern der neuen Datei nicht auf den Server...?

      Gruss infeloba

      Kommentar


      • #4
        Dann lass uns doch mal die Fehlermeldung sehen
        Debugging:Leitfaden - PHP.de Wiki
        sigpic

        Kommentar


        • #5
          Eine Fehlermeldung gibts nicht

          Er speichert das Bild ja in den Ordner (../images/), jedoch in der Originalgröße, er soll es aber in der neuen Größe in den Ordner speichern. Versuche es wie ien Blöder hinzubekommen.....

          Kommentar


          • #6
            Nö tut er nicht. Er speichert Sie verkleinert. Dann speichert er sie in Originalgröße und überschreibt dabei die verkleinerte Version. Lösung: Letzteren Schritt entfernen.
            sigpic

            Kommentar


            • #7
              Danke für Deine Hilfe

              Aber, mein letzer Schritt ist :

              PHP-Code:
               move_uploaded_file($Grafikdatei"../images/".$Grafikdatei); 
              dann speichert er ja nichts mehr....

              Kommentar


              • #8
                Du speicherst die verkleinerte Grafik bereits mittels
                PHP-Code:
                Image*($Thumbnailgrafik$Grafikdatei100); 
                Mit [MAN]move_uploaded_file[/MAN] speicherst du die Original hochgeladene Datei ab. Da du beide Dateien unter $Grafikdatei abspeicherst, überschreibt letzteres das abgespeicherte Bild vom vorherigen Schritt.
                sigpic

                Kommentar


                • #9
                  Upload durch Benutzer -> is_uploaded_file ? -> move_uploaded_file -> Verarbeitung (resize + speichern in neuer Datei)
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    PHP-Code:
                    $sql mysql_query("INSERT INTO bilder SET galerie_titel='".$galerie_titel."',bild_titel='".$bild_titel."', 
                                                    bild_pfad='"
                    .$bild_pfad."',bild_name='".$bild_name."',bild_beschreibung='".$bild_beschreibung."',timestamp='".$timestamp."'"); 
                                                    
                                                    
                    $Grafikdatei $_FILES['datei']['name'];
                                                    
                    $dateityp getimagesize($Grafikdatei);
                                                    
                    $OriginalBreite $dateityp[0];
                                                    
                    $OriginalHoehe $dateityp[1];
                                                    
                    $NeueBreite 1024;
                                                    if(
                    $OriginalBreite $NeueBreite){
                                                        
                    $NeueBreite $OriginalBreite;
                                                    }
                                                    
                    $Skalierungsfaktor $OriginalBreite/$NeueBreite;
                                                    
                    $Neue_Hoehe intval($OriginalHoehe/$Skalierungsfaktor);

                                                    if(
                    $dateityp[2] == 1){
                                                        
                    $Originalgrafik ImageCreateFromGIF($Grafikdatei);
                                                        
                    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                        
                    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                        
                    ImageGIF($Thumbnailgrafik$Grafikdatei100);
                                                    }
                                                    elseif(
                    $dateityp[2] == 2){
                                                        
                    $Originalgrafik ImageCreateFromJPEG($Grafikdatei);
                                                        
                    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                        
                    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                        
                    ImageJPEG($Thumbnailgrafik$Grafikdatei100);
                                                    }
                                                    elseif(
                    $dateityp[2] == 3){
                                                        
                    $Originalgrafik ImageCreateFromPNG($Grafikdatei);
                                                        
                    $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                        
                    imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                        
                    ImagePNG($Thumbnailgrafik$Grafikdatei100);
                                                    }
                                                   
                    // move_uploaded_file($Grafikdatei, "../images/".$Grafikdatei); 
                    Er speichert immer noch in Originalgröße...
                    Verstehe glaube nicht genau....

                    Kommentar


                    • #11
                      Zitat von lstegelitz Beitrag anzeigen
                      Upload durch Benutzer -> is_uploaded_file ? -> move_uploaded_file -> Verarbeitung (resize + speichern in neuer Datei)
                      Upload durch Benutzer = Ist erfolgt.

                      is_uploaded_file = Ist erfolgt.

                      move_uploaded_file = Sollte ich herausnehmen.


                      Verarbeitung (resize + speichern in neuer Datei) == ?

                      Ich verzweifel langsam

                      Kommentar


                      • #12
                        PHP-Code:
                        if (!is_uploaded_file($_FILES['datei']['tmp_name']) 
                          die(
                        'file was not uploaded');

                        $DESTINATION 'C:/uploads/'.$_FILES['datei']['name'];
                        if (!
                        move_uploaded_file($_FILES['datei']['tmp_name'], $DESTINATION)) 
                          die(
                        'uploaded file could not be moved');

                        // Datei ist in Ordnung. Die originale Version liegt nun unter C:/uploads/<Dateiname>
                        // Verarbeitung: Analysiere Datei, mach irgendwas damit und speichere dann
                        // EINE NEUE DATEI! 
                        move_uploaded_file nicht herausnehmen, sondern an der richtigen Stelle stehen haben. Wie geschrieben ist die Reihenfolge:
                        - Upload durch den Benutzer
                        - Überprüfung mit is_uploaded_file
                        - Falls Überprüfung ok, move_uploaded_file
                        - Falls move erfolgreich: Verarbeitung
                        - Speichern unter neuem Namen
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Zitat von lstegelitz Beitrag anzeigen
                          PHP-Code:
                          if (!is_uploaded_file($_FILES['datei']['tmp_name']) 
                            die(
                          'file was not uploaded');

                          $DESTINATION 'C:/uploads/'.$_FILES['datei']['name'];
                          if (!
                          move_uploaded_file($_FILES['datei']['tmp_name'], $DESTINATION)) 
                            die(
                          'uploaded file could not be moved');

                          // Datei ist in Ordnung. Die originale Version liegt nun unter C:/uploads/<Dateiname>
                          // Verarbeitung: Analysiere Datei, mach irgendwas damit und speichere dann
                          // EINE NEUE DATEI! 
                          move_uploaded_file nicht herausnehmen, sondern an der richtigen Stelle stehen haben. Wie geschrieben ist die Reihenfolge:
                          - Upload durch den Benutzer
                          - Überprüfung mit is_uploaded_file
                          - Falls Überprüfung ok, move_uploaded_file
                          - Falls move erfolgreich: Verarbeitung
                          - Speichern unter neuem Namen
                          Sorry, ich bekomme es nicht hin.....

                          Bitte um Korigierung des Codes:

                          PHP-Code:
                          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                          <html xmlns="http://www.w3.org/1999/xhtml">
                          <head>
                          <title>ITService-Fuss.de - Bilder hochladen</title>
                          <?php include('./galerie_meta.php'); ?>
                          </head>
                          <?php include('../auth.inc.php'); ?>
                          <body onload="start();">
                              <div id="wrapper">
                                  <div id="header"></div>
                                  <div id="top"><?php include('./galerie_navi.php'); ?></div>
                                  <div id="navi"></div>
                                  <div id="center">
                                      <span id="ueberschrift">Bild(er) hochladen</span><br /><br /><br /><br />
                                      <form action="./bilder_hochladen.php" method="post" enctype="multipart/form-data" name="Formular_Gaestebuch">
                                          <?php
                                          
                          include('../../include/anti_spam_zahlen.php');
                                          include(
                          '../../include/db_verbindung.inc.php');
                                          
                          $sql mysql_query("SELECT * FROM galerie ORDER BY timestamp DESC");
                                          echo 
                          "&nbsp;&nbsp;&nbsp;<b>In welche Galerie soll das Bild eingef&uuml;gt werden?</b><br /><br />";
                                          echo 
                          "&nbsp;&nbsp;<select class='grau' name='galerie_titel'>";
                                          while (
                          $row mysql_fetch_object($sql)){
                                              
                          $id $row->id;
                                              
                          $galerie_titel $row->galerie_titel;
                                              echo 
                          "<option value='".$galerie_titel."'>".$galerie_titel."</option>";    
                                          }
                                          echo 
                          "</select>&nbsp;&nbsp;<a href='./bilder_galerie_erstellen.php' title='Neue Bilder-Galerie erstellen?'>
                                          <sub><img src='../../img/neu.gif' border='0' alt='Neue Galerie erstellen?' title='Neue Galerie erstellen?' /></sub></a><br /><br />"
                          ;
                                          
                          ?>
                                          <table cellpadding="7" cellspacing="7" class="bilder_hochladen" >        
                                              <tr>
                                                  <td align="left" valign="top" width="120px"><br /><b>Bild-Titel:</b></td>
                                                  <td align="left"><br /><input name="bild_titel" size="60" value="<?=$_POST['bild_titel'];?>" class="grau" /></td>
                                              </tr>
                                              <tr>
                                                  <td align="left"><b>Bild:</b></td>
                                                  <td><small>(.gif .jpg .png - max 600 Kb und ca. 800 x 600 Pixel)</small><br />
                                                  <input type="file" name="datei" class="grau" size="60" />
                                                  </td>
                                              </tr>
                                              <tr>
                                                  <td align="left" valign="top"><br /><b>Bild-Beschreibung:</b></td>
                                                  <td><br />
                                                      <textarea class="grau" name="Anfrage" cols="64" rows="8" onblur="RestlicheZeichenErmitteln_gaestebuch(this);"
                                                          onfocus="RestlicheZeichenErmitteln_gaestebuch(this);" onkeydown="RestlicheZeichenErmitteln_gaestebuch(this);"    
                                                          onkeyup="RestlicheZeichenErmitteln_gaestebuch(this);"><?=$_POST['Anfrage'];?></textarea><br />
                                                      <small>Noch <input size="3" name="Laenge" value="500" style="border:0px solid #666666" /> Zeichen &uuml;brig.</small>
                                                  </td>
                                              </tr>
                                              <tr>
                                                  <td align="left" valign="top"><br /><b>Sicherheitsabfrage:</b></td>
                                                  <td align="left" valign="bottom">
                                                  <font color="#888888"><?php echo $spam_zahl;?></font>&nbsp;= &nbsp;
                                                      <input name="number" type="hidden" id="number" value="<?php echo md5($Zahl_1+$Zahl_2); ?>" />
                                                      <input name="arithmetic" maxlength="10" type="text" id="arithmetic" size="4" class="grau" />
                                                      
                                                  <span style="display:none"><input type="text" name="SPAM" id="nachname" /></span></td>
                                              </tr>
                                              <tr>
                                                  <td><br /></td>
                                                  <td align="left"><br /><input type="submit" name="neu_bild" value="Bild hochladen" class="send_button" />
                                                  <br /><br /><small>Das Hochladen kann einige Sekunden lang dauern...</small>
                                                  </td>
                                              </tr>
                                          </table><br />
                                          <?php
                                      
                          if(isset($_POST['neu_bild'])){
                                          
                          $galerie_titel $_POST['galerie_titel'];
                                          
                          $bild_titel $_POST['bild_titel'];
                                          
                          $bild_pfad "images/";
                                          
                          $bild_name $_FILES['datei']['name'];
                                          
                          $bild_beschreibung $_POST['Anfrage'];
                                          
                          $timestamp time();
                                          
                          $dateityp getimagesize($_FILES['datei']['tmp_name']);
                                          if(empty(
                          $_POST['bild_titel'])){
                                              echo 
                          "<font color='#ff0000'>Bitte geben Sie einen Titel ein</font>";
                                          }elseif(empty(
                          $_POST['arithmetic'])){ 
                                              echo 
                          "<font color='#ff0000'>Die Sicherheitsabfrage ist nicht gel&ouml;st worden</font>";  
                                          }elseif(
                          $_POST['number'] != md5($_POST['arithmetic'])){  
                                              echo 
                          "<font color='#ff0000'>Die Sicherheitsabfrage war falsch</font>";  
                                          }elseif (
                          $_POST["SPAM"] != ""){
                                              echo 
                          "Sie haben ein Feld ausgef&uuml;llt, das leer bleiben muss";
                                          }else{
                                              if(
                          $dateityp[2] != 0){
                                                  if(
                          $_FILES['datei']['size'] < 614400){
                                                          include(
                          '../../include/db_verbindung.inc.php');
                                                          
                          $sql mysql_query("INSERT INTO bilder SET galerie_titel='".$galerie_titel."',bild_titel='".$bild_titel."', 
                                                          bild_pfad='"
                          .$bild_pfad."',bild_name='".$bild_name."',bild_beschreibung='".$bild_beschreibung."',timestamp='".$timestamp."'"); 
                                                          
                                                          
                          $Grafikdatei $_FILES['datei']['name'];
                                                          
                          $dateityp getimagesize($Grafikdatei);
                                                          
                          $OriginalBreite $dateityp[0];
                                                          
                          $OriginalHoehe $dateityp[1];
                                                          
                          $NeueBreite 1024;
                                                          if(
                          $OriginalBreite $NeueBreite){
                                                              
                          $NeueBreite $OriginalBreite;
                                                          }
                                                          
                          $Skalierungsfaktor $OriginalBreite/$NeueBreite;
                                                          
                          $Neue_Hoehe intval($OriginalHoehe/$Skalierungsfaktor);

                                                          if(
                          $dateityp[2] == 1){
                                                              
                          $Originalgrafik ImageCreateFromGIF($Grafikdatei);
                                                              
                          $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                              
                          imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                              
                          ImageGIF($Thumbnailgrafik$Grafikdatei100);
                                                          }
                                                          elseif(
                          $dateityp[2] == 2){
                                                              
                          $Originalgrafik ImageCreateFromJPEG($Grafikdatei);
                                                              
                          $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                              
                          imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                              
                          ImageJPEG($Thumbnailgrafik$Grafikdatei100);
                                                          }
                                                          elseif(
                          $dateityp[2] == 3){
                                                              
                          $Originalgrafik ImageCreateFromPNG($Grafikdatei);
                                                              
                          $Thumbnailgrafik ImageCreateTrueColor($NeueBreite$Neue_Hoehe);
                                                              
                          imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$NeueBreite$Neue_Hoehe$OriginalBreite$OriginalHoehe);
                                                              
                          ImagePNG($Thumbnailgrafik$Grafikdatei100);
                                                          }
                                                          
                          move_uploaded_file($Grafikdatei"../images/".$Grafikdatei);  
                                                          
                                                          
                                                          
                                                          echo 
                          "<font color='#008000'>Bild erfolgreich hinzugef&uuml;gt</font>";
                                                          echo 
                          "<meta http-equiv='refresh' content='0;url=./bilder_galerie_ausgabe.php?id=".$galerie_titel."' />";
                                                      
                                                  }else{
                                                      echo 
                          "<font color='#ff0000'>Das Bild darf nicht gr&ouml;&szlig;er als 600 kb sein</font>";
                                                  }
                                              }else{
                                                  echo 
                          "<font color='#ff0000'>Bitte ein Bild ausw&auml;hlen, welches das JPG-, GIF- oder PNG-Format entspricht</font>";
                                              }
                                          }
                                      }        
                                      
                          mysql_free_result($sql);
                                      
                          ?>
                                      </form>
                                  </div>
                              <div id="right"></div>
                              <div id="footer"><a href="../../index.php">Startseite</a></div>
                          </body>
                          </html>

                          Kommentar


                          • #14
                            Damit komme ich nicht klar...die Reihenfolge wurde dir jetzt bereits 3 mal gesagt UND auch noch Beispielcode gegeben?

                            Mich beschleicht das dumpfe Gefühl, der Code ist nicht von dir...

                            Mein letzter Versuch "Hilfe zur Selbsthilfe"

                            PHP-Code:
                                        if(isset($_POST['neu_bild'])){
                                            
                            $galerie_titel $_POST['galerie_titel'];
                                            
                            $bild_titel $_POST['bild_titel'];
                                            
                            $bild_pfad "http://www.php.de/images/"
                            wird zu
                            PHP-Code:
                                        if(isset($_POST['neu_bild'])){
                                            if (!
                            is_uploaded_file($_FILES['datei']['tmp_name']) ) 
                                              die(
                            'Bild wurde nicht hochgeladen'); 
                                            if (!
                            move_uploaded_file($_FILES['datei']['tmp_name'], 'images/'.$_FILES['datei']['name']))
                                              die(
                            'Fehler beim Verschieben des Uploads');
                                            
                            // Das Bild liegt nun unter images/<$_FILES['name']>
                                            
                                            // Verarbeitung beginnt JETZT...
                                            
                            $galerie_titel $_POST['galerie_titel'];
                                            
                            $bild_titel $_POST['bild_titel'];
                                            
                            $bild_pfad "http://www.php.de/images/";
                                            
                            // ... usw ...

                                            // NACH der Verarbeitung wird das Bild gespeichert
                                            // vorzugsweise NICHT auf den gleichen Dateinamen...

                                            // und sollte hier unten nochmal move_uploaded_file() auftauchen
                                            // kommentier es aus... 
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar


                            • #15
                              Hi @ll!

                              Soweit funktioniert es jetzt...

                              Nur wenn das Bild welches ich hochladen möchte ca. 4000 x 3000 Pixel groß ist, dann verarbeitet er das Bild erst garnicht...

                              Wenn ich das Bild manuell auf eine Größe auf ca. 1600 x 1200 ändere , dann gehts...

                              Was ist denn los?

                              Bitte um Hilfe




                              Gruß infeloba

                              Kommentar

                              Lädt...
                              X