Wie kann ich ein HTML-Formular mit Benutzername, Passwort, Upload von mehreren Dateien hochladen und dann mit PHP verarbeiten?
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.
Lösung
Besuche zunächst einmal diese Seiten auf PHP.net
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.