Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Programmierung mit PHP  Teil von  Dateisystem via PHP
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Datei-Upload via HTML-Formular: Seite 2

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Hinter diesen fünf Elementen stecken folgende Details:

ElementSyntaxBedeutung
name$_FILES["datei"]["name"]Der ursprüngliche Dateiname auf der Clientmaschine. Der genaue Dateiname mit evtl. vorhandenen Laufwerksbuchstaben, Pfadseparatoren und anderen Sonderzeichen ist betriebssystemabhängig.
type$_FILES["datei"]["type"]Dieses Element enthält den MIME-Type der Datei, so wie er dem Server vom Browser übermittelt worden ist. Dieser Wert kann unter Umständen nicht richtig sein, je nach Einstellung des Browsers. Beim Ermitteln des Typs von hochgeladenen Grafiken sollte stattdessen die Funktion getimagesize() verwendet werden.
size$_FILES["datei"]["size"]Die Größe der hochgeladenen Datei in Byte.
tmp_name$_FILES["datei"]["tmp_name"]Dieses Element enthält den Namen der Datei in einem temporären Verzeichnis auf dem Server. Sie kann von dort mit einem move_uploaded_file()-Aufruf abgeholt werden. Das ist auch notwendig, da die Originaldatei am Ende des Skripts automatisch gelöscht wird.
error$_FILES["datei"]["error"]Dieses Element wurde mit PHP 4.2.0 eingeführt und enthält den Status des Datei-Uploads. Die möglichen Werte und dazugehörigen Konstanten finden Sie weiter unten.


Die wohl wichtigsten Informationen stecken in $_FILES["datei"]["size"], $_FILES["datei"]["type"] und $_FILES["datei"]["error"].
Mithilfe des Elemente $_FILES["datei"]["error"] können Sie kontrollieren, ob und welcher Fehler aufgetreten ist.

FehlerkonstanteWertBedeutung
UPLOAD_ERR_OK0Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen.
UPLOAD_ERR_INI_SIZE1Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.
UPLOAD_ERR_FORM_SIZE2Die hochgeladene Datei überschreitet die in dem HTML-Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.
UPLOAD_ERR_PARTIAL3Die Datei wurde nur teilweise hochgeladen.
UPLOAD_ERR_NO_FILE4Es wurde keine Datei zum Server übertragen, das Feld war leer.


Auch wenn kein Fehler aufgetreten ist, entbindet Sie dies nicht von der Aufgabe zu überprüfen, ob die Datei tatsächlich Ihren gewünschten Anforderungen entspricht. Grundsätzlich kann jede Benutzereingabe manipuliert sein, daher sollten Sie vor allem beim Datei-Upload möglichst auf Nummer sicher gehen.

Hinweis: Dateien, welche den Fehler UPLOAD_ERR_INI_SIZE oder UPLOAD_ERR_FORM_SIZE erzeugen, werden automatisch vom Server gelöscht.

Achtung: PHP 4-Versionen, die kleiner als PHP 4.1 sind, kennen das globale Array $_FILES nicht. Stattdessen können Sie auf das assoziative Array $HTTP_POST_FILES zurückgreifen.



Ablegen der Datei auf dem Server

Nun haben Sie es fast schon überstanden. Sobald eine Datei an den Server gesendet wurde, wird sie in einem temporären Verzeichnis unter einem temporären Namen gespeichert. Diese Datei wird jedoch automatisch gelöscht, wenn das verarbeitende Skript beendet ist. Sie müssen daher diese Datei zum endgültigen Ablageverzeichnis kopieren. Sie sollten sich nun der upload.php zuwenden, auf die im HTML-Formular für den Datei-Upload verwiesen wurde.

Beispiel – upload.php

<?php

// Prüfen des Arrays $_FILES
if (isset($_FILES["datei"])) {

// Upload-Status
if ($_FILES["datei"]["error"] == UPLOAD_ERR_OK) {

// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";

// Dateiname und Dateigröße
if (preg_match($regExp,$_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 100000) {

// Temporäre Datei in das Zielverzeichnis
// des Servers verschieben.
move_uploaded_file($_FILES["datei"]["tmp_name"],"shots/".$_FILES["datei"]["name"]);

// Redirect zur Erfolgsmeldung
header("Location: status.html");
}
else {
  echo "Fehler: Im Dateinamen oder Dateigrössen Limit!";
}
}
else {
  echo "Fehler: Während der Übertragung aufgetreten!";
}
}
else {
  echo "Fehler: Dateiupload fehlgeschlagen!";
}

?>




Datei-Upload via HTML-Formular Seite 1
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Pfadangabe für inkludierte Dateien setzen

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


String mit einem Schatteneffekt versehen (3D-Look)

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de