PHP-Uploadscript

An dieser Stelle möchte ich Ihnen die simple Arbeitsweise von PHP in Bezug auf den Upload einer Datei auf einen Webserver vorstellen.


Erstmal ein kleines Formular. Wir benötigen für den Dateiupload den enctype "mutipart/form-data", ein input-Feld vom Typen "file" und einen Submitbutton. Dem input-Feld geben wir den Namen "userfile" um später auf die Datei zugreifen zu können. Hier gibt es auch andere Möglichkeiten, die weniger spezifisch sind, allerdings stellen wir das ersteinmal zurück.


1. /* ########################
##########################
Mike Ollick :: fotoart , design , programming
www.ollick.net
######################## */
<form enctype="multipart/form-data" action="#" method="post">
Send this file:
<input name="userfile" type="file">
<input type="submit" name="senden" value="upload">
</form>



Auf zum Script. Als erstes deklarieren wir uns mal zwei Variablen. Die Erste ($mimearray) soll alle erlaubten Dateitypen beinhalten und die Zweite ($uploaddir) soll den Pfad auf dem Webserver angeben, wo die Datei später abgelegt wird.


2. <?php
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
// In PHP kleiner als 4.0.3 verwenden man copy() und is_uploaded_file() anstatt von
// move_uploaded_file()

//Deklaration der gültigen Mimetypen

$mimearray=array("image/gif", "image/jpeg", "image/pjpeg","image/x-png","image/png");

//Upload verzeichnis
$uploaddir = 'uploads/';



Zum eigentlichen Script. Unser Submitbutton im Formular hatte den namen "senden". Nun prüfen wir zuerst einmal ob dieser betätigt wurde. Anschließend checken wir ob die hochzuladende Datei vom richtigen Mimetyp ist. An dieser Stelle greifen wir das erstemal auf das $_FILES[]-Array zu welches uns einiges an Informationen mitliefert. Wenn die UploadDatei gültig ist, gehts nun weiter mit der eigentlichen Funktion. Ist dieses nicht der Fall, gehts weiter mit Punkt 4.

Mit "move_uploaded_file()" können wir die Datei die sich nun noch im temporären Speicher befindet in unseren angegebenen Ordner auf dem Server verschieben. Sollte aus irgendeinem Grund dieser Upload nicht funktionieren, geben wir natürlich eine Fehlermeldung aus, die uns darüber benachrichtigt.


3. //Prüfen ob Formular gesendet wurde
if($_POST['senden']==true){
// Prüfung auf Gültigkeit des Vordeklarierten MimeTyps
if(in_array($_FILES['userfile']['type'],$mimearray))
{
// dateiupload
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print "Datei ist gültig und wurde erfolgreich hochgeladen. Debugginginfo:\n";
print "";
print "Name: ".$_FILES['userfile']['name']."";
print "Size: ".$_FILES['userfile']['size']."";
print "Mime: ".$_FILES['userfile']['type']."";
}else{
// Fehler beim Dateiupload
print "Fehler beim Dateiupload";
}


4. }else{
//Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht
print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']."
ist nicht für den Upload gestattet";
}
}
?>




So! Nun habt Ihr ein recht einfaches Gerüst für einen Dateiupload. Dieses Script ist natürlich nicht formvollendet und mit allen Sicherheitsmechanismen ausgerüstet, jedoch könnt Ihr es sehr einfach erweitern und an eure Bedürfnisse anpassen.


Viel Spaß!

Mike










 

 

News

Back in Office !!

Hallo zusammen. Nach 2 Monaten ausser Haus bin ich nun wieder zurück im Büro und warte mit alter Energie und Kraft auf.

Was hat sich getan in den 2 Monaten?

Ich wurde gebucht um ...mehr

Frohes Neues Jahr

Das neue Jahr hat begonnen und Mike Ollick // moderne Medien geht in eine neue Runde.

Ich wünsche allen Kunden und Freund ...mehr