Thema ansehen
 Thema drucken
Dateiupload-Script
admin
Hallo Leute,

heute möchte ich euch ein kleines aber nützliches PHP-Programm vorstellen. Das Programm besteht aus 2 Dateien, einer Formular-Datei und dem eigentlichen PHP-Code für ein Dateiupload-Programm auf PHP-Basis.

Fangen wir mal mit der Formular-Datei mit dem Namen "upload.html", der HTML-Code lautet wie folgt:

Download Code  Code
<html>
<body>
<h1>Dateiupload</h1>
<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="file" name="datei1"><br>
<input type="file" name="datei2"><br>
<input type="file" name="datei3"><p>
<input type="submit" value="Senden">
</form>
</body>
</html>




Mit diesem HTML-Code wird erreicht, dass ein Formular dargestellt wird, mit dem sich 3 Dateien gleichzeitig auf den Web-Server hochladen lassen. Mit dem Programmteil "<form enctype="multipart/form-data" method="post" action="upload.php">" wird beschrieben, dass es sich um eine Datei handelt, die übertragenwerden soll und das für die eigentliche Funktion des Formulars die Datei "upload.php" genutzt werden soll. Durch diesen Code "<input type="file" name="datei1">" im Formular wird gesagt, dass der Typ der Eingabe eine Datei ist und es wird gleichzeitig erreicht, dass neben diesem Feld ein Button steht mit der "Durchsuchen"-Funktion.

Nun zum eigentlichen PHP-Code der Datei upload.php, der da lautet:

Download Code  Code
<html>
<body>
<?php
if ($datei1!="none") {
$erfolg = move_uploaded_file (
$_FILES ['datei1'] ['tmp_name'],
$_FILES ['datei1'] ['name']
);
if ($erfolg)
                   print "<br>Datei1 ".$_FILES['datei1'] ['name'].
" wurde gespeichert<p>";
else {
                   print "<br>Irgendwas ist schiefgegangen";
}
}
if ($datei2!="none") {
$erfolg = move_uploaded_file (
$_FILES['datei2'] ['tmp_name'],
$_FILES['datei2'] ['name']
);
if ($erfolg)
                   print "<br>Datei2 ".$_FILES['datei2'] ['name'].
" wurde gespeichert<p>";
else {
                   print "<br>Irgendwas ist schiefgegangen";
}
}
if ($datei3!="none") {
$erfolg = move_uploaded_file (
$_FILES['datei3'] ['tmp_name'],
$_FILES['datei3'] ['name']
);
if ($erfolg)
print "<br>Datei3 ".$_FILES['datei3'] ['name'].
" wurde gespeichert<p>";
else {
print "<br>Irgendwas ist schiefgegangen";
}
}
?>
</body>
</html>




Schauen wir uns mal diesen Programmabschnitt an:

if ($datei1!="none") {
$erfolg = move_uploaded_file (
$_FILES ['datei1'] ['tmp_name'],
$_FILES ['datei1'] ['name']
);
if ($erfolg)
print "<br>Datei1 ".$_FILES['datei1'] ['name'].
" wurde gespeichert<p>";
else {
print "<br>Irgendwas ist schiefgegangen";

Mit diesem Programmteil if ($datei1!="none") wird eine Bedingung erstellt, die da lautet, "Ist Variable"datei1 ungleich leer (wenn also in diesem Feld eine Datei zu finden ist) mache folgendes $erfolg = move_uploaded_file. Mit diesem Code wird erreicht, das in einem Falle des Erfolges ($erfolg Variable erfolg) die Datei die übertragen wurde aus dem temporären Verzeichnis $_FILES ['datei1'] ['tmp_name'], in das Verzeichnis $_FILES ['datei1'] ['name'] kopiert wird. Dieser Schritt ist notwendig, da nach Beendigung dieses Codes die temporäre Datei sofort gelöscht wird.
Ist (if ($erfolg)) die Variable erfolg wahr (print "<br>Datei1 ".$_FILES['datei1'] ['name'].) gebe Name der Datei1 aus und schreibe " wurde gespeichert" "else " ansonsten schreibe "print "<br>Irgendwas ist schiefgegangen";". Der Text "Irgendwas ist schiefgegangen" erscheint z.B. dann, wenn das Feld im Formular leer war.

Dieser Programmteil muss 3mal wiederholt werden, da insgesamt 3 Dateien gleichzeitig hochgeladen werden können.

Ihr könnt den Programm-Code auch als gepackte Datei kostenlos im Download-Bereich unter PHP-Programme herunterladen.

MfG
Andreas
 
Web
Springe ins Forum: