thorongil: Dateiupload und Textfeld in einem Formular

NAch lager Suche in diversen Foren habe ich mich nun doch entschlossen selber zu posten.

Ich möchte ein Formular erstellen in dem es unter anderem möglich ist Bilder inclusive Beschreibung auf den Server zu laden. Je nach definition des Formulars kommen allerdings entweder nur die Bilder oder der Text an.

Hier der (vereinfachte) code:

  
//hier kommt nur das Bild an  
<form action="upload.php" method="post"  enctype="multipart/form-data" name="1"  target="_blank" >  
   Bild 01:<input type="file" name="datei1"><br>  
   Beschreibung:<input type="text" name="besch1" size="50"> <br>  
   <input type="submit" value="Hochladen">  
</form>  
  
//und hier nur der Text  
<form action="upload.php" target="_blank" >  
   Bild 01:<input type="file" name="datei1"><br>  
   Beschreibung:<input type="text" name="besch1" size="50"> <br>  
   <input type="submit" value="Hochladen">  
</form>  

Zusätzlich zum eigentlichen upload werden die Dateinamen und Beschreibungen, zusammen mit anderen Daten, in der upload.php als neuer Datenbank eintrag angelegt.

Gibt es eine Möglichkeit beide Werte in einem Formular zu erfassen, oder zwei Formulare so mit einander zu verknüpfen, dass sich die Daten mit einem Knopfdruck übertragen lassen?

Schonmal vielen Dank für Eure Hilfe
Andreas

  1. Hi,

    //hier kommt nur das Bild an

    <form action="upload.php" method="post"  enctype="multipart/form-data" name="1"  target="_blank" >
       Bild 01:<input type="file" name="datei1"><br>
       Beschreibung:<input type="text" name="besch1" size="50"> <br>
       <input type="submit" value="Hochladen">
    </form>

      
    Dafür ist auf die Schnelle kein Grund erkennbar.  
      
    Wie verarbeitest du die Daten denn?  
      
    
    > ~~~html
    
    //und hier nur der Text  
    
    > <form action="upload.php" target="_blank" >  
    >    Bild 01:<input type="file" name="datei1"><br>  
    >    Beschreibung:<input type="text" name="besch1" size="50"> <br>  
    >    <input type="submit" value="Hochladen">  
    > </form>
    
    

    Da fehlen ja sowohl die passende enctype-Angabe, als auch die Methode. Default ist GET, File Upload nutzt aber POST.

    Gibt es eine Möglichkeit beide Werte in einem Formular zu erfassen, oder zwei Formulare so mit einander zu verknüpfen, dass sich die Daten mit einem Knopfdruck übertragen lassen?

    Ja, man muss es nur richtig machen.

    Wie, beschreibt http://www.php.net/manual/en/features.file-upload.php

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Wie verarbeitest du die Daten denn?

      Danke, da war der Knackpunkt, aus der vorhandenen upload.php hatte ich
      $besch1 = $_GET["besch1"]; übernommen. Dieses jetzt durch $besch1 = $_POST["besch1"];ausgetauscht und alles läuft.

  2. Hello,

    PHP teilt die Informationen auf:

    Die Daten der hochgeladenen Files landen im Temporärverzeichnis
    Die Metadaten der hochgeladenen Files landen im Array $_FILES

    Die Daten der Dialogelemente (Input, Textarea, Select, ...) landen im Array $_POST

    Lass Dir also beide Arrays mal anzeigen

      
    <?php  ### upload.php ###  
        echo "<pre>\r\n";  
        echo htmlspecialchars(print_r($_FILES,1));  
        echo htmlspecialchars(print_r($_POST,1));  
        echo "</pre>\r\n";  
    ?>  
    
    

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de