Wie kann ich ein HTML-Formular mit Benutzername, Passwort, Upload von mehreren Dateien hochladen und dann mit PHP verarbeiten?

StackOverflow https://stackoverflow.com/questions/137730

  •  02-07-2019
  •  | 
  •  

Frage

Wie Sie einen Benutzernamen, ein Passwort und mehrere Binärdateien aus einer einzigen HTML-Formular schreiben und es mit PHP verarbeiten? Ich darf nicht Ajax verwenden.

War es hilfreich?

Lösung

Besuche zunächst einmal diese Seiten auf PHP.net

  1. Datei-Upload-info
  2. move_uploaded_file

Aber du hier ein paar Stub-Dateien zu beginnen.

uploadForm.html

<html>
<body>
    <form action="processStuff.php" enctype="multipart/form-data" method="POST">
        username: <input type="text" name="username" />
        password: <input type="password" name="password" />

        <p>
            <input type="file" name="uploadFile[]" /><br />
            <input type="file" name="uploadFile[]" /><br />
            <input type="file" name="uploadFile[]" /><br />
            <!-- Add as many of these as you want -->
        </p>

        <p>
            <input type="submit" />
        </p>
    </form>
</body>
</html>

processStuff.php

<pre>
<?php

    echo '<h2>Username & password</h2>'
    echo "Username: {$_POST['username']}\nPassword: {$_POST['password']}";
    echo '<hr />';

    echo '<h2>Uploaded files</h2>'  
    foreach($_FILES['uploadFile']['tmp_name'] as $i => $tempUploadPath) {
        if (empty($tempUploadPath)) {
            // this <input type="file" /> was "blank"... no file selected
        } else {
            // a file was uploaded
            echo '<strong>A file named "', $_FILES['uploadFile']['name'][$i], "\" was uploaded</strong>\n";
            echo "\ttemporarily stored at: ", $tempUploadPath, "\n";            
            echo "\tmime type: ", $_FILES['uploadFile']['type'][$i], "\n";
            echo "\tsize: ", $_FILES['uploadFile']['size'][$i], " bytes\n";         
            echo "\terror code", 
            ((empty($_FILES['uploadFile']['size'][$i]) 
                    ? '<em>no errror</em>' 
                    : $_FILES['uploadFile']['size'][$i])), 
            "\n\n";

    // do something useful with the uploaded file 
        // access it via $tempUploadPath and use move_uploaded_file() to move 
        //     it out of the temp path before you manipulate it in any way!!!!!
        // see http://us3.php.net/features.file-upload
        // and http://us3.php.net/manual/en/function.move-uploaded-file.php
        }       
    }

?>
</pre>

Die HTML-Datei zeigt, wie der enctype des <form> einzustellen und die zweiten Form zeigen Sie, wie die vorgelegten Benutzername und Passwort für den Zugriff auf und schließlich, wie durch jede hochgeladene Datei Schleife.

Wie bereits erwähnt die Datei bewegen muss (n) so schnell wie möglich. Sie sind zu einem temporären Speicherort hochgeladen und das System wird sie löschen, wenn Sie mit ihnen umgehen. Also irgendwo bewegen ‚em zuerst, dann tun, was Sie w / sie benötigen.

Hoep das hilft

Arin

Andere Tipps

Sie sollten die $_FILES superglobalen und move_uploaded_file() Funktion verwenden, um zu sehen, welche Dateien erfolgreich hochgeladen wurden und sie an ihren endgültigen Standort für den Fall, bewegen sie waren.

Die $_POST Superglobal werden die eingereichten Benutzernamen und ein Passwort enthalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top