datei upload sicherlich die x'te

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

  • datei upload sicherlich die x'te

    Hallo Leute,

    hab wiedermal ein Problem.
    Ich habe einen Upload der wie folgt ausieht:

    PHP-Code:


    if($was=="doit"
      {

    $sizev $bildv_size// Größe der Datei 
    $sizeh $bildh_size;// Größe der Datei 

    $namev "/new_/seiten/upload/".$bildv_name;    // Der Originalname 
    $nameh "/new_/seiten/upload/".$bildh_name;    // Der Originalname 
    $typev $bildv_type;// Der MIME Type der Datei 
    $typeh $bildh_type;// Der MIME Type der Datei 
    if(eregi("(jpg|PDF|tif)$",$namev)) 
        { 
        if(
    $sizev<60000000
        { 
        
    copy($bildv,$namev); // Kopiert das Bild 
        
    copy($bildh,$nameh); // Kopiert das Bild 


    $query="insert into datei (kundenID,bildv_name,bildh_name,cmyk,dpi,randanschnitt) VALUES ('$kundenID','$bildv_name','$bildh_name','$cmyk','$dpi','$randanschnitt')";
    $result mysql_db_query($dbase$query$db); 


    // das steht jetzt im Formular 

    echo "<td>eine&nbsp;<input name=\"Anzahl\" type=\"radio\" value=\"1\">&nbsp;&nbsp;oder zwei&nbsp;<input name=\"Anzahl\" type=\"radio\" value=\"2\">&nbsp;Seiten hoch ?</td>\n";
    echo 
    "</tr>\n";
    echo 
    "<tr> \n";
    echo 
    "<td> Bitte w&auml;hle jetzt nur noch Deine Datei f&uuml;r die <strong>Seite 1 </strong>aus:</td>\n";
    echo 
    "<td><input type='file' name='bildv'></td>\n";
    echo 
    "</tr>\n";
    echo 
    "<tr> \n";
    echo 
    "<td> Bitte w&auml;hle jetzt nur noch Deine Datei f&uuml;r die <strong>Seite 2</strong> aus:</td>\n";
    echo 
    "<td><INPUT type=file name='bildh'></td>\n";
    echo 
    "</tr>\n"

    nun mein Problem der User kann entscheiden ob er ein oder zwei Datein (Bilder)
    hochladen möchte und das macht probleme nach dem Upload von nur einem Bild bringt das Script dann eine Fehlermeldung.

    Wie kann ich an die Sache ran gehen also irgendwie abfragen ob er nur ein Bild oder zwei hochlädt ?



    Gruss Kleinschmidt
    Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

  • #2
    arbeite hier mit einem array. name='bildh'

    also

    ... name='bild[]' ....

    PHP-Code:
    echo "<td><INPUT type=file name='bild[]'></td>\n"
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Danke für die schnelle Antwort,


      was mach ich jetzt mit dem Array ?
      muss ich jetzt abfragen wieviele elemente drin sind zum schreiben auf dem Server ?

      Muss ich das irgenwo wieder Spliten ?


      Sorry, bin noch ein Anfänger in PHP.



      Gruss Kleinschmidt
      Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

      Kommentar


      • #4
        so sollte das gehen. habs aber nicht getestet...

        PHP-Code:
        for ($i=0;$i<count($bild);$i++ {

          echo 
        $i "<br>";

          echo 
        $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["name"];
          echo 
        "<br>";

          echo 
        $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["size"];
          echo 
        "<br>";

          echo 
        $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["type"];
          echo 
        "<br>";

          echo 
        $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["tmp_name"];
          echo 
        "<br><br>";


        so inder art zumindest....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Das ist natürlich nicht schlecht mit einer for schleife :-).


          habs mal ausprobiert jetzt gibt es mir aus " Falsche Erweiterung" kommt weiter hinten bei mir im Script, wenn ich kein JPG oder TIF oder PDF habe
          aber ich habe zwei jpg Datein hochgeladen ??


          hier nóchmal mein ganzes Script wie es jetzt ist

          PHP-Code:
          <?php

          if($was=="doit"
            {

          $sizev $bildv_size// Größe der Datei 
          $sizeh $bildh_size;// Größe der Datei 

          $namev "/home/new_/seiten/upload/".$bildv_name;    // Der Originalname 
          $nameh "/home/new_/seiten/upload/".$bildh_name;    // Der Originalname 
          $typev $bildv_type;// Der MIME Type der Datei 
          $typeh $bildh_type;// Der MIME Type der Datei 
          if(eregi("(jpg|PDF|tif)$",$namev)) 
              { 
              if(
          $sizev<60000000
              { 
              
          copy($bildv,$namev); // Kopiert das Bild 
              
          copy($bildh,$nameh); // Kopiert das Bild 

          // Daten aus Formular 3 werden in die Datenbank "datei" geschrieben 
          $query="insert into datei (kundenID,bildv_name,bildh_name,cmyk,dpi,randanschnitt) VALUES ('$kundenID','$bildv_name','$bildh_name','$cmyk','$dpi','$randanschnitt')";
          $result mysql_db_query($dbase$query$db); 

          // hier ist das letzte Stück !!!!
          for ($i=0;$i<count($bild);$i++) {

            echo 
          $i "<br>";

            echo 
          $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["name"];
            echo 
          "<br>";

            echo 
          $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["size"];
            echo 
          "<br>";

            echo 
          $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["type"];
            echo 
          "<br>";

            echo 
          $GLOBALS["HTTP_POST_FILES"]["bild[".$i."]"]["tmp_name"];
            echo 
          "<br><br>";

          }
              
          echo 
          "<center><strong>Die Datei/Dateien: ".$bildv_name." und ".$bildh_name." wurden erfolgreich hochgeladen.<br><br><a href=template_email_bestellung_fertig.php?sessionID=$sessionID&kundennummer=$kundennummer&warengruppe=$warengruppe&artikelnummer=$artikelnummer&artikelbezeichnung=$artikelbezeichnung&auflage=$auflage&imprint_ja_nein=$imprint_ja_nein&vk_neu=$vk_neu&bildv_name=$bildv_name&bildh_name=$bildh_name><img src=\"../bildchen/button_ende.gif\" alt=\"ENDE\" border=\"0\"></a>.</strong></center>";


          else

          echo 
          "Ihre Datei ist über 5,5 KB oder gleich 0";  


          else 

          echo 
          "Falsche Erweiterung - Bitte wähle zuerst die Datai aus!<p><a href=javascript:history.back()>zurück</a>"


          else

          echo 
          "<form action='".$PHP_SELF."' enctype=\"multipart/form-data\" name=\"haupt\" method='post' onSubmit='return datenprfg();'>\n";
          echo 
          "<input type='hidden' name='was' value='doit'>\n"
          echo 
          "<input type='hidden' name='mail' value='go'>\n"
          echo 
          "<input type=\"hidden\" name=\"kundenID\" value=\"$kundenID\">\n"
          echo 
          "<input type=\"hidden\" name=\"kundennummer\" value=\"$kundennummer\">\n"
          echo 
          "<input type=\"hidden\" name=\"artikelnummer\" value=\"$artikelnummer\">\n"
          echo 
          "<input type=\"hidden\" name=\"cmyk\" value=\"$cmyk\">\n"
          echo 
          "<input type=\"hidden\" name=\"dpi\" value=\"$dpi\">\n"
          echo 
          "<input type=\"hidden\" name=\"randanschnitt\" value=\"$randanschnitt\">\n"
          echo 
          "<input type=\"hidden\" name=\"auflage\" value=\"$auflage\">\n";
          echo 
          "<input type=\"hidden\" name=\"vk_neu\" value=\"$vk_neu\">\n";
          echo 
          "<input type=\"hidden\" name=\"warengruppe\" value=\"$warengruppe\">\n";
          echo 
          "<input type=\"hidden\" name=\"imprint_ja_nein\" value=\"$imprint_ja_nein\">\n";
          echo 
          "<table cellpadding=0 cellspacing=0 border=0 class=fliesstext>\n";
          echo 
          "<tr>\n";
          echo 
          "<td colspan=2><strong>Jetzt musst Du nur noch Deine Daten hochladen:</strong><br><br></td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td> <strong>Lade:</strong></td>\n";
          echo 
          "<td>eine&nbsp;<input name=\"Anzahl\" type=\"radio\" value=\"1\">&nbsp;&nbsp;oder zwei&nbsp;<input name=\"Anzahl\" type=\"radio\" value=\"2\">&nbsp;Seiten hoch ?</td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td> Bitte w&auml;hle jetzt nur noch Deine Datei f&uuml;r die <strong>Seite 1 </strong>aus:</td>\n";
          echo 
          "<td><input type='file' name='bild[]'></td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td> Bitte w&auml;hle jetzt nur noch Deine Datei f&uuml;r die <strong>Seite 2</strong> aus:</td>\n";
          echo 
          "<td><INPUT type='file' name='bild[]'></td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td colspan=2>&nbsp; </td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td>&nbsp; </td>\n";
          echo 
          "<td><input type=submit name=senden value=senden></td>\n";
          echo 
          "</tr>\n";
          echo 
          "<tr> \n";
          echo 
          "<td>&nbsp; </td>\n";
          echo 
          "<td>&nbsp; </td>\n";
          echo 
          "</tr>\n";
          echo 
          "</table>\n";
           echo 
          "</form>\n";


          ?>
          Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

          Kommentar


          • #6
            ist ja auch logisch.

            PHP-Code:
            if(eregi("(jpg|PDF|tif)$",$namev)) 
            $namev kennt er nun nicht mehr.

            du solltest die schleife aber erst einmal so testen, damit du siehst, was da drin steht. also ohne deinen ganzen rotz da drin...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              so hab jetzt alles weggelassen,


              das kommt dabei raus

              i0
              name
              size
              type
              temp_name

              i1
              name
              size
              type
              temp_name


              das ist die ausgabe ??

              Hängt das damit zusammen das man vieleicht $_post[] schreiben sollte ??

              kenn mich leider zuwenig aus
              Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

              Kommentar


              • #8
                habs grad selber noch einmal getestet und es waren fehler drin ...
                damit gehts aber. ich habs auch getestet.
                PHP-Code:
                <?php

                for ($i=0;$i<count($bild);$i++) {

                  echo 
                $i "<br>";

                  echo 
                $GLOBALS["HTTP_POST_FILES"]["bild"]["name"][$i];
                  echo 
                "<br>";

                  echo 
                $GLOBALS["HTTP_POST_FILES"]["bild"]["size"][$i];
                  echo 
                "<br>";

                  echo 
                $GLOBALS["HTTP_POST_FILES"]["bild"]["type"][$i];
                  echo 
                "<br>";

                  echo 
                $GLOBALS["HTTP_POST_FILES"]["bild"]["tmp_name"][$i];
                  echo 
                "<br><br>";

                }

                  echo 
                "<pre>";
                  
                print_r($GLOBALS["HTTP_POST_FILES"]);
                  echo 
                "</pre>";


                echo 
                "<form action='".$PHP_SELF."' enctype=\"multipart/form-data\" name=\"haupt\" method='post'>\n";
                echo 
                "<input type='file' name='bild[]'><br>\n";
                echo 
                "<input type='file' name='bild[]'><br>\n";
                echo 
                "<input type='file' name='bild[]'><br>\n";
                echo 
                "<input type=\"submit\" name=\"\" value=\"senden\">";
                echo 
                "</form>\n";

                ?>
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  hab grad noch einen fehler gesehen..... nämlich, wenn nciht alle felder eine datei beinhaltet hatten.

                  hiermit geht auch diese prüfung
                  PHP-Code:
                  <?php

                  for ($i=0;$i<count($bild);$i++) {

                    if (
                  $GLOBALS["HTTP_POST_FILES"]["bild"]["tmp_name"][$i] != "none") {

                      echo 
                  $i "<br>";

                      echo 
                  $GLOBALS["HTTP_POST_FILES"]["bild"]["name"][$i];
                      echo 
                  "<br>";

                      echo 
                  $GLOBALS["HTTP_POST_FILES"]["bild"]["size"][$i];
                      echo 
                  "<br>";

                      echo 
                  $GLOBALS["HTTP_POST_FILES"]["bild"]["type"][$i];
                      echo 
                  "<br>";

                      echo 
                  $GLOBALS["HTTP_POST_FILES"]["bild"]["tmp_name"][$i];
                      echo 
                  "<br><br>";

                    }

                  }

                  echo 
                  "<pre>";
                  print_r($GLOBALS["HTTP_POST_FILES"]);
                  echo 
                  "</pre>";

                  echo 
                  "<form action='".$PHP_SELF."' enctype=\"multipart/form-data\" name=\"haupt\" method='post'>\n";
                  echo 
                  "<input type='file' name='bild[]'><br>\n";
                  echo 
                  "<input type='file' name='bild[]'><br>\n";
                  echo 
                  "<input type='file' name='bild[]'><br>\n";
                  echo 
                  "<input type=\"submit\" name=\"\" value=\"senden\">";
                  echo 
                  "</form>\n";

                  ?>
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Klasse das funktioniert soweit :-)

                    total freu, jetzt :-)


                    so nun liegt das Bild oder die Bilder im Temp verzeichnis,

                    kann ich damit denn Rest machen ??

                    PHP-Code:
                    <?php 
                    // In PHP 4.1.0 oder höher sollte $_FILES anstatt $HTTP_POST_FILES verwendet werden.
                    if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
                        
                    copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
                    } else {
                        echo 
                    "Possible file upload attack. Filename: " $HTTP_POST_FILES['userfile']['name'];
                    }
                    /* ...oder... */
                    move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
                    ?>

                    wieschon gesagt bin noch ein anfänger
                    Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                    Kommentar


                    • #11
                      @Abraxax und allen die mir geholfen haben DANKE.

                      Hat mir sehr viel geholfen




                      Gruss Kleinschmidt
                      Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                      Kommentar

                      Lädt...
                      X