Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
1340
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Hallo erstmal ich weis über Bild Upload gibt es hier mehre Themen nur habe da so ein bestimmtes Problem und zwar möchte ich meinen Code so erweitern das ich Mehere Bilder Hochladen kann weis das es ja mit Arrays gehen müsste weis nur nicht genau wie da ich mich mit den Arrays nicht besonders auskenne .

    Hier mal mein Code vom Formular:

    PHP-Code:
    <form action="upload.php" method="post"  enctype="multipart/form-data" method="post"  onsubmit="this.go.disabled=true;zeigeBalken();return true;">    <div class="auto-style2">
        
     <select name="albumid">
    <?php
     
          $select 
    "SELECT * FROM album  WHERE id = '$id'";
          
    $query mysql_query($select);
          while (
    $array mysql_fetch_array($query)) {
                echo 
    '<option value="'.$array["albumid"].'">'.$array["albumname"].'</option>';
          }
     
    ?>
    <script type="text/javascript">
    function zeigeBalken() {
        document.getElementById("ladebalken").style.display = "inline";
        return true;
    }
    </script>

    <input type="file"   name="datei" id="fileElem" onchange="handleFiles(this.files)">
     <br><br> <div align="center" id="ladebalken" style="display:none">
      <img  src="../bilder/icon/ladebalken4.gif" alt=""><br>
    </div>
     
    <input type="submit" name="go" value="Hochladen">

    ich weis das ich so :

    PHP-Code:
    <input type="file" multiple  name="datei" id="fileElem" onchange="handleFiles(this.files)"
    Also mit multiple mehre Bilder Markieren kann bei Upload so solte es ja sein aber da der Upload Script nicht für mehre Bilder ausgelegt ist lädt er nur eine Datei hoch

    Upload Code:

    PHP-Code:
    <?php  
    include ("../checkuser.php");  
    include (
    "../config.inc.php"); 
    ?>

    <?php
    $id 
    $_SESSION["user_id"]; 
     
    $albumname $_POST["albumid"];
    $dateityp GetImageSize($_FILES['datei']['tmp_name'])
    ;
    $bild $_FILES['datei']['name']; 
    if(
    $dateityp[2] != 0)
       {

       if(
    $_FILES['datei']['size'] <  102400000)
          {
          
    move_uploaded_file($_FILES['datei']['tmp_name'], "../users/$id/Gallery/album/$albumname/".$_FILES['datei']['name']);
          echo 
    "<h1 class='auto-style2'><strong>Dein Bild </strong></h1>
    <h1 class='auto-style2'><strong>
    <img alt='' height='271' src='../users/
    $id/Gallery/album/$albumname/$bild' width='316'></strong></h1>
    <h1 class='auto-style2'><strong><br>wurde erfolgreich im Album 
    hinzugef&uuml;gt</strong></h1>
    "
    ;
          }

       else
          {
             echo 
    "Das Bild darf nicht größer als 100 kb sein ";
          }

        }

    else
        {
        echo 
    "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
        }
        



    $aendern "UPDATE album  Set
    albumbild = 'album/
    $albumname/$bild'
    WHERE albumid = '
    $albumname'";
    $update mysql_query($aendern);

    ?>
    Danke für eure Hilfe .
     

  2. #2
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Im Formular den Namen des Feldes auf einen Array setzen
    name="datei[]"

    Dann schau dir mal mit var_dump($_FILES) den Array genau an. Dann solltest du auch erkwennen was du umbauen musst
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  3. #3
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Danke erstmal aber wie gesagt kenne mich mit Arrays nicht so aus benutze ich so gut wie nie
    habe das mal probiert aber jetzt erkennt er das bild nicht mehr da ja getimagesize glaub ich nicht lesbar ist.

    PHP-Code:
    $dateityp = array(GetImageSize($_FILES['datei']['tmp_name']))
    ;
    $bild $_FILES['datei']['name']; 
    if(
    $dateityp[2] != 0)
       {

       if(
    $_FILES['datei']['size'] <  102400000)
          {
        
    count(move_uploaded_file($_FILES['datei']['tmp_name'], "../users/$id/Gallery/album/$albumname/".$_FILES['datei']['name'])); 
     

  4. #4
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Zitat Zitat von Yaslaw Beitrag anzeigen
    Dann schau dir mal mit var_dump($_FILES) den Array genau an.t
    Und? Wie sieht das aus?
    Ich weiss grad nur noch auswendig, dass die Array-Struktur leicht anderst ist. Aber Auswendig weiss ichs nicht.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  5. #5
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Wenn ich dich doch richtig verstanden habe, was ich grade bezweifel dann meinst doch auf der php Seite das das $dateityp = array("($file)") fehlt und dann halt der Count der zählt wie viele Bilder vorhanden sind oder ?
     

  6. #6
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Nö. Ich meine du sollst ganz am Anfang im Code var_dump($_FILES) ; reinkopieren. Dann laufen lassen, Files auswählen, abschicken.
    Dann schreibt es dir auf die Seite den Inhalt von $_FILES. Den kannst du kopieren und hier reinschreiben. Dann sehen wir alle wie der Array aufgebaut ist.
    Oder du googelst um herauszufinden wie $_FILES aufgebaut ist oder jemand macht einen Testcode und postet es hier her.

    Und dann können wir deinen Code analysieren - vorher hat es keinen Zweck, ausser man weiss auswendig wie $_FILES bei Mult-File-Upload aufgabaut ist...
    Deadfish bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  7. #7
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Habe das mal so gemacht das sieht schon mal fast richtig aus aber er lädt immer das gleiche Bild
    hoch

    PHP-Code:
    var_dump($_FILES) ;
    $id $_SESSION["user_id"]; 
     
    $albumname $_POST["albumid"];
    $dateityp GetImageSize($_FILES['datei']['tmp_name'])
    ;
    $bild $_FILES['datei']['name']; 
    if(
    $dateityp[2] != 0)
       {

       if (
    $_FILES['datei']['size'] <  102400000)
          {
           for(
    $i=0$icount($dateityp ); $i++){ 
     

  8. #8
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Ich gebs auf. Wenn du willst, dass ich dir helfe, dann solltest du mir helfen dir zu helfen.
    Aber wenn du meine Gegenfrage immer ignorierst.......
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  9. #9
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Ich habe ja das var_dump($_FILES) ; reinkopiert dann hab ich ja eine Array Ausgabe des Uploads stehen und oben ist doch die $files Daten ?

    Sorry wenn das so klingt , aber ich weis nicht genau worauf du hinaus willst
     

  10. #10
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Zitat Zitat von Deadfish Beitrag anzeigen
    Ich habe ja das var_dump($_FILES) ; reinkopiert dann hab ich ja eine Array Ausgabe des Uploads stehen und oben ist doch die $files Daten ?

    Sorry wenn das so klingt , aber ich weis nicht genau worauf du hinaus willst
    Dann muss ich blind sein. In welchem deiner Posts (Rechts im blauen Balken hat es Nummern. Dies ist Post #10)?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  11. #11
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    So hab mal ein bisschen gegoogelt und gelesen habe den Code etwas verändert und jetzt liest er bei 2 ausgewählten Bilder schon mal beide arryas aus z.b: Array ( [datei] => Array ( [0] => Array ( [name] => logo.png [type] => image/png [tmp_name] => /tmp/phpVlnaOs [error] => 0 [size] => 45068 ) [1] => Array ( [name] => watermark.gif [type] => image/gif [tmp_name] => /tmp/phpW6xKlf [error] => 0 [size] => 550 ) ) )


    hier mal der Code :
    PHP-Code:
    <style type="text/css">
        body {
        background-image: url(/skin/my/images/mainbg.jpg);
        background-repeat: repeat;
    }
        body p {
        text-align: center;
        color: #333;
    }
    .auto-style2 {
        text-align: center;
    }

    </style>
    <?php  
    include ("../checkuser.php");  
    include (
    "../config.inc.php"); 
    function 
    multiple(array $_files$top TRUE)
    {
        
    $files = array();
        foreach(
    $_files as $datei=>$file){
            if(
    $top$sub_datei $file['name'];
            else    
    $sub_datei $datei ;
            
            if(
    is_array($sub_datei )){
                foreach(
    array_keys($sub_datei ) as $key){
                    
    $files[$datei][$key] = array(
                        
    'name'     => $file['name'][$key],
                        
    'type'     => $file['type'][$key],
                        
    'tmp_name' => $file['tmp_name'][$key],
                        
    'error'    => $file['error'][$key],
                        
    'size'     => $file['size'][$key],
                    );
                    
    $files[$datei ] = multiple($files[$datei ], FALSE);
                }
            }else{
                
    $files[$datei ] = $file;
            }
        }
        return 
    $files;
    }

    $files multiple($_FILES);
    print_r($files);
    $id $_SESSION["user_id"]; 
     
    $albumname $_POST["albumid"];
    $dateityp GetImageSize($_FILES['datei']['tmp_name']);
    $bild $_FILES['datei']['name']; 
    $datei $_FILES['datei']['name']; // Dies hab ich noch nicht getestet, da ich den Namen immer nach datum und user id abgespeichert hab. 
    $datei str_replace(" ""_""$datei"); 
    $datei htmlentities($datei); // Mit leerzeichen -> _ hab ich auch noch nicht getestet, sollte aba klappen 
    $dateityp GetImageSize($_FILES['datei']['tmp_name']);
    $erlaubte_Dateiendungen = array( "jpg""JPEG" );




    $i 0;
    while(
    $i count($files)) { 

                   
    move_uploaded_file($_FILES['datei']['tmp_name'], "../users/$id/Gallery/album/$albumname/$datei"); 
                      
    $file        "../users/$id/Gallery/album/$albumname/$datei"
                      
    $target    "../users/$id/Gallery/album/$albumname/$datei"
                      
    $max_width   "400"//Breite ändern 
                      
    $max_height   "300"//Höhe ändern 
                      
    $quality     "100"//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); 
    $i++;
             }      


    $aendern "UPDATE album  Set
    albumbild = 'album/
    $albumname/$bild'
    WHERE albumid = '
    $albumname'";
    $update mysql_query($aendern);

    ?>
     

  12. #12
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Schon gut bin Fertig hab es hin bekommen
     

  13. #13
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Also, DEIN Array sieht also so aus: (Ich habe ihn mal formatiert damit man die Struktur OHNE KLAMMERN ZÄHLEN erkennt)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    Array ( 
        [datei] => Array ( 
            [0] => Array ( 
                [name] => logo.png 
                [type] => image/png 
                [tmp_name] => /tmp/phpVlnaOs 
                [error] => 0 
                [size] => 45068 
            ) 
            [1] => Array ( 
                [name] => watermark.gif 
                [type] => image/gif 
                [tmp_name] => /tmp/phpW6xKlf 
                [error] => 0 
                [size] => 550 
            ) 
        ) 
    )

    Ergo ist das hier sicher falsch
    PHP-Code:
    while($i count($files)) { 

                   
    move_uploaded_file($_FILES['datei']['tmp_name'], "../users/$id/Gallery/album/$albumname/$datei"); 
    ...

    Das sollte eher so aussehen
    PHP-Code:
    foreach($_FILES['datei'] as $i => $details){
        
    move_uploaded_file($details['tmp_name'], "../users/$id/Gallery/album/$albumname/$datei"); 
    ...

    Gut möglich das auch der Rest vom Code deinem Array falsch abwickelt.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

  14. #14
    Deadfish ist offline Mitglied Silber
    Registriert seit
    Apr 2010
    Beiträge
    51
    Danke erstmal für deine mühe
    habe es so gemacht geht aber auch

    PHP-Code:
    foreach($_FILES['datei']['name'] as $key => $value){ 
     

  15. #15
    Avatar von Yaslaw
    Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    7.055
    Dann hast du ein anderes Array als du gepostet hast - ich gebs auf dir weiter zu helfen. Ich fühle mich verarscht. Ich reiss mir den A**** auf dir zu helfen und du lieferst dauernd sich widersprechende und somit FALSCHE Informationen.

    Tschüss
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements¨in PHP-Code kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit Code-Tags verwenden

Thema nicht erledigt

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 28.10.10, 13:40
  2. Bild upload und Bild löschen
    Von thehasso im Forum PHP
    Antworten: 8
    Letzter Beitrag: 20.05.09, 21:03
  3. Antworten: 3
    Letzter Beitrag: 01.03.09, 15:03
  4. ImageMagick + bild upload + bild verkleinern
    Von oldputz1990 im Forum PHP
    Antworten: 15
    Letzter Beitrag: 29.10.06, 10:47
  5. Antworten: 2
    Letzter Beitrag: 28.03.04, 16:53

Stichworte