array - fileupload - unterschiedliche namen

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

  • array - fileupload - unterschiedliche namen

    hallo forum,

    liegt bestimmt am wetter, aber ich hab probleme mit folgendem:
    möchte auf einer seite für 2 personen jeweils 2 uploads machen
    <php>

    <form action="" method="post" enctype="multipart/form-data" name="up">
    user 1 hat id 22:
    <br>BILD:<input type='file' name="bild" />
    <br>VERTRAG:<input type='file' name="vertrag" />

    user 2 hat id 50:
    <br>BILD:<input type='file' name="bild" />
    <br>VERTRAG:<input type='file' name="vertrag" />
    </php>

    wie kann ich die ids den entsprechenden uploads zuweisen,
    um nach dem upload mit foreach in die datenbank zu speichern.



    hab schon alles möglich und unmöglich ausprobiert,...
    name="bild[]"
    name="bild[][".$ID."]"
    usw.
    komme aber auf keinen grünen zweig.
    wäre für jeden konstruktiven tipp dankbar.
    gruss b.

  • #2
    Formularfelder mit name="name[id]" benennen - und dann mal mit print_r schauen, wie $_POST/$_FILES dann aufgebaut sind.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ok, gemacht:

      bild[$rs[$i][id]]
      vertrag[$rs[$i][id]]

      <php>
      auszug aus dem array:

      Array
      (
      [idshot] => Array
      (
      [name] => Array
      (
      [1] => testbild.jpg
      [37] => dokument.pdf
      )
      ...
      </php>

      wie komme ich an die $key's - sprich die id's - , um damit weiterzuarbeiten?

      Kommentar


      • #4
        Zum Beispiel per foreach-Schleife.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          PHP-Code:

          if (array_key_exists('submit',$_POST))

              echo
          "<pre>";print_r($_FILES);echo"</pre>";
              
              foreach (
          $_FILES as $file=> $value
              {
              
              echo 
          "frage: wie komme ich hier an die keys also id  1 und 37 ";
                  }


          Zuletzt geändert von bastian; 22.07.2009, 23:15.

          Kommentar


          • #6
            Zitat von bastian Beitrag anzeigen
            liegt bestimmt am wetter
            Knallt bei euch die Sonne um die Uhrzeit immer noch, oder ist der Kopp jetzt anderweitig weich geworden ...?
            PHP-Code:
                foreach ($_FILES as $file=> $value
                {
                
                echo 
            "frage: wie komme ich hier an die keys also id  1 und 37 ";
                    } 
            Vielleicht, in dem du $file nutzt? - Immerhin sagst du mit der verwendeten Syntax explizit, dass die foreach-Schleife dir darin bitte den Key bereitstellen soll.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              tut mir leid, aber hab ein brett vor dem kopf.
              ich weiss nicht wie ich an die werte, also id 1 und id 37 komme.

              bitte sag vor! bin verzweifelt

              PHP-Code:
              foreach ($_FILES as $file=> $value
              {
              echo 
              $file ;

              ausgabe ist:
              idshot
              vertrag
              Zuletzt geändert von bastian; 23.07.2009, 12:09.

              Kommentar


              • #8
                Zitat von bastian Beitrag anzeigen
                ausgabe ist:
                idshot
                vertrag
                Das passt vorne und hinten nicht zusammen.
                Weder zu dem Array, dass deine Testausgabe (angeblich) geliefert hat, noch zu den Feldnamen, die ich dir vorgeschlagen hatte.


                Wenn du also irgendwelche anderen obskuren Feldnamen mit noch mehr variablen Bestandteilen nutzen willst, dann ist natürlich auch das $_FILES-Array anders aufgebaut. Also noch mal: Schau dir seinen Aufbau an, dann solltest du wissen, wie es zu durchlaufen ist.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Dein Vorschlag:

                  file mit name="name[id]":

                  PHP-Code:
                  <form action="" method="post" enctype="multipart/form-data" name="up">
                  user 1 hat id 1:
                  <
                  br>BILD:<input type='file' name="bild[1]" />
                  <
                  br>VERTRAG:<input type='file' name="vertrag[1]" />

                  user 2 hat id 37:
                  <
                  br>BILD:<input type='file' name="bild[37]" />
                  <
                  br>VERTRAG:<input type='file' name="vertrag[37]" /> 
                  mit foreach:
                  PHP-Code:
                  foreach ($_FILES as $file=> $value
                  {
                  echo 
                  $file;

                  ergibt:
                  bild
                  vertrag


                  print_r($_FILES) liefert:
                  PHP-Code:
                  Array
                  (
                      [
                  bild] => Array
                          (
                              [
                  name] => Array
                                  (
                                      [
                  1] => _img1.jpg
                                      
                  [37] => _img3.jpg
                                  
                  )

                              [
                  type] => Array
                                  (
                                      [
                  1] => image/jpeg
                                      
                  [37] => image/jpeg
                                  
                  )

                              [
                  tmp_name] => Array
                                  (
                                      [
                  1] => /tmp/phprSslGD
                                      
                  [37] => /tmp/phpPNayuS
                                  
                  )

                              [
                  error] => Array
                                  (
                                      [
                  1] => 0
                                      
                  [37] => 0
                                  
                  )

                              [
                  size] => Array
                                  (
                                      [
                  1] => 2684
                                      
                  [37] => 3777
                                  
                  )

                          )

                      [
                  vertrag] => Array
                          (
                              [
                  name] => Array
                                  (
                                      [
                  1] => test2.jpg
                                      
                  [37] => testxyz.jpg
                                  
                  )

                              [
                  type] => Array
                                  (
                                      [
                  1] => image/jpeg
                                      
                  [37] => image/jpeg
                                  
                  )

                              [
                  tmp_name] => Array
                                  (
                                      [
                  1] => /tmp/phpJ2lr5f
                                      
                  [37] => /tmp/phpj9QFTu
                                  
                  )

                              [
                  error] => Array
                                  (
                                      [
                  1] => 0
                                      
                  [37] => 0
                                  
                  )

                              [
                  size] => Array
                                  (
                                      [
                  1] => 2743
                                      
                  [37] => 209510
                                  
                  )

                          )


                  Kommentar


                  • #10
                    Zitat von bastian Beitrag anzeigen
                    mit foreach: [...] ergibt:
                    bild
                    vertrag
                    Ja, wenn sich die IDs gar nicht auf oberster Ebene des Arrays befinden, kannst du wohl kaum erwarten, sie zu sehen zu bekommen, wenn du nur die oberste Ebene durchläufst.

                    print_r($_FILES) liefert:
                    Na fein, damit hast du doch alles, was du brauchst.

                    Das kombinierst du mit deinem Wissen darüber, wie man mit mehrdimensionalen Arrays umgeht, und fertig.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      das mit dem wissen ist ja so ne' sache.
                      ok, werd's dennoch versuchen... auf zur 45ten runde.

                      erstmal danke füs antworten und deine nerven
                      b.

                      Kommentar

                      Lädt...
                      X