Datei-upload

H

hanspf

Wie kann man mit PHP ein html-Formular programmieren, bei dem der User eine Datei auf den Server hochladen kann?
 
mit janz normalem HTml:

<form action=index.php enctype="multipart/form-data">
<input type=file size=50 maxlength=100000 name="Datei" accept="text/*">
<form>

in index.php:
PHP:
$x= file($datei);
$ziehl = "daWoDieDateigespeichertwerdensoll";
$f =fopen($ziehl,"wb");
fputs($f,$x);
fclose($f);

so ähnlich sollte es funktionieren....
aber ich garantier für garnix ;)

tob
 
Dateiuploads mit POST
PHP kann Dateiuploads mit jedem RFC-1867 konformen Browser (dazu gehören der Natscape Navigator 3 oder höher, Microsoft Internet Explorer 3 mit Patch von Microsoft oder höher ohne Patch) durchführen. Es können sowohl Text- als auch Binärdaten hochgeladen werden. Mit PHP´s Authentifizierungs- und Dateifunktionen besteht volle Kontrolle darüber, wer Dateien hochladen darf und was mit den Dateien geschehen soll, wenn der Upload beendet ist.

PHP unterstützt auch Dateiuploads nach der PUT-Methode, die beispielsweise vom Netscape Composer und den W3C Amaya Clients benutzt wird. Siehe dazu PUT-Unterstützung für nähere Informationen.

Eine Maske für den Dateiuplod kann erstellt werden, indem man ein Formular entwirft, was ungefähr so aussieht: Beispiel 19-1. Formular für den Dateiupload

Code:
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>


Die URL sollte auf eine PHP-Datei verweisen. Das versteckte Feld MAX_FILE_SIZE muß dem Dateieingabefeld vorausgehen und den Wert der maximal akzeptierten Dateigrösse in Bytes enthalten. Bei erfolgreichem Upload des Files werden folgende Variablen definiert:



$userfile - Der temporäre Name, unter dem die hochgeladene Datei auf demServer gespeichert wurde.

$userfile_name - Der ursprüngliche Dateiname auf dem System des Absenders.

$userfile_size - Größe der hochgeladenen Datei in Bytes.

$userfile_type - Der Mime-Typ der Datei, wenn dies Information zur Verfügung gestellt wird. Ein Beispiel wäre "image/gif".

Die Variable "$userfile" trägt den Namen des Dateifeldes im Formular; im obigen Beispiel haben wir die Bezeichnung "userfile" gewählt.

Standardmäßig werden Dateien in dem vorgegebenen temporären Verzeichnis des Servers gespeichert. Dies kann durch das Setzen der Umgebungsvariablen TMPDIR direkt in der Umgebung, in der PHP ausgeführt wird, geändert werden. Ein Setzen des temporären Verzeichnisses durch die Funktion putenv() innerhalb eines Skriptes ist nicht möglich.

Das PHP-Skript, dem die hochzuladende Datei übergeben wird, sollte alle nötigen Anweisungen enthalten, die festlegen, wie mit der hochgeladenen Datei verfahren werden soll. Beispielsweise kann die $file_size - Variable verwendet werden, um Dateien auszusortieren, die zu gross oder zu klein sind. Oder man benutzt die $file_type - Variable, um sich aller Dateien zu entledigen, die nicht bestimmten Typen entsprechen. Auf jeden Fall sollte die hochgeladene Datei aus dem temporären Verzeichnis gelöscht oder an andere Stelle verschoben werden.

Die Datei wird aus dem temporären Verzeichnis gelöscht, sobald das Skript abgearbeitet ist, wenn sie nicht verschoben oder umbenannt wurde.


Quelle: PHP-Handbuch :) :)
 
schau doch mal

bei php3.com unter
move_uploaded_file


damit arbeite ich auch..
nehms für bilder von usern zum hochladen und geht wunderbar

mfG
Hammerhe@rt
 

Neue Beiträge

Zurück