<?
if($sent): #Abfrage ob Upload gestartet
?>
<?
#Die Variable $MAX_FILE_SIZE könnte hier benutzt werden um
#die Dateigröße zu beschränken. Beim Überschreitet der
#Maximalen Größe würde der Upload-File verworfen werden.
#Diese variable steht in PHP zur Verfügung.
#Sie ist in den meisten Fällen Providerseitig festgelegt
#auf 2 MB. Dieser wert stellt die maximale Größe dar.
#Wenn Du diesen Wert größer setzt, hat die Providereinstellung Vorrang.
#$MAX_FILE_SIZE=10000;
# Würdest Du diese Variable setzen und das Upload übersteigt den wert
# hatte die Variable $datei dann den Wert "none"
# Da wir aber hier im Beispiel eine gezielte Meldung ausgeben wollen,
# benutzen wir eine andere Variable um die Filegröße zu begrenzen
$maxgroesse=80000; # max Größe hier jetzt 80kbyte
# Verzeichnis angeben in das die Datei abgelegt werden soll
# dieses Verzeichnis muß existieren
$pfad="_images/adressbuch/userbilder/"; # hier probe
#Variable für Hinweistext setzen
$hinweis="";
# Prüfvariable
$speichern=true;
# Es wurde keine Datei übertragen oder die vom
#Provider vorgegebene maximale Filegröße wurde überschritten
if($datei=="none")
{
$hinweis="Es wurde keine Datei ausgewählt";
$speichern=false; #Prüfvariable auf false setzen
}
else
{
# $datei_size ist eine reservierte Variable(xxx_size)
# der Vorsatz datei ist dabei durch den Namen des Filefeldes der Form
#bestimmt. Hieße dein Filefeld "egal" wäre der Name der Variablen
# $egal_size
if($datei_size>$maxgroesse) #von Dir vorgegebene Filegröße überschritten
{
$hinweis="Übertragene Datei zu groß. Max. Größe: ".$maxgroesse." kbyte";
$speichern=false;
}
# $datei_type ist eine reservierte Variable(xxx_type)
# der Vorsatz datei ist dabei durch den Namen des Filefeldes der Form
#bestimmt. Hieße dein Filefeld "egal" wäre der Name der Variablen
# $egal_type und gibt die Art des Uploadfiles zurück:
# Beispiele:
#text/html-->htm/html-Dokument
#application/x-zip-compressed -->Zip-Archiv
#image/pjpeg -->jpg-Grafik
#application/x-javascript -->Javascript-Datei,xxx.js
#image/gif -->gif-Grafik
#text/plain -->txt-Dokument
#image/x-png -->png-Grafik
#image/bmp -->bmp-Grafik
#application/octet-stream--> (z.b exe,wav usw.)
#Wir wollen hier im Beispiel nur
#jpg/png oder gif -Files zulassen
#also basteln wir entweder eine entsprechende if-abfrage
if($datei_type!="image/pjpeg" and $datei_type!="image/x-png" and $datei_type!="image/gif" and $datei_type!="image/bmp")
#dies wiederum beschränkt und aber auf die o.g. Typenunterscheidungen
# Wir machen das hier anders. Wir zerlegen den Dateinamen und
#extrahieren die entsprechende Datei-Endung.
#So können wir gezielt z.B. auch eine WAV-Datei abfragen
#Dafür benutzen wir die reservierte Variable "xxxx_name"
#in unserem Fall "$datei_name"
$dattyp=""; #eigene Variable für Dateityp
$dattyp=split("\.",$datei_name);
$dattyp[count($dattyp)-1];
$endung=strtolower($dattyp[count($dattyp)-1]);
if($endung!="jpg" and $endung!="png" and $endung!="gif" and $endung!="bmp")
{
$hinweis="Datei enthält kein gültiges Grafikformat";
$speichern=false;
}
}
#jetzt fragen wir die Prüfvariable $speichen ab.
#Hat unsere Datei alle Prüfungen überstanden
#speichern wir diese ab.
#Achtung: Der folgende Code speichert die Datei unter Ihrem Originalnamen ab
#Wenn mehrere Nutzer eine Datei mit gleichem Namen speichern überschreiben sich
#diese Datein gegenseitig.
#Um das zu verhindern benötigst Du zusätzlichen Code.
#je nachdem welche Variante du benutzen möchtest, entferne
#die Kommentarzeichen "#" vor dem entsprechende Code und
#kommentiere den jeweils anderen aus.
##############
#Code-block zum Speichern unter dem Original-namen
#ist hier auskommentiert
#ab if die Kommentarzeichen ggf. entfernen
if($speichern)
{
$fdatei=$datei;
$fdatei_name=$datei_name;
#copy($fdatei,$pfad.$fdatei_name);
echo "Datei wurde gespeichert unter: ".$pfad.$fdatei_name."<br><br>";
echo "<a href='".$PHP_SELF."'> zurück zum Uploadfomular</a>";
exit;
}
## Bis zur Klammer die Kommentarzeichen entfernen.
# Code-Block für das abspeichern unter einem
# anderen, eindeutigen Namen
#Ab if ggf. auskommentieren
#if($speichern)
#{
#$fdatei=$datei;
#Dateinamen aus "d_" und "function time" und $endung zusammensetzen
#$fdatei_name="d_".time().".".$endung;
#copy($fdatei,$pfad.$fdatei_name);
#echo "Datei wurde gespeichert unter: ".$pfad.$fdatei_name."<br><br>";
#echo "<a href='".$PHP_SELF."'> zurück zum Uploadfomular</a>";
#exit;
#}
echo "Fehler:".$hinweis."<br>"; #Fehlermeldung schreiben.
?>
<?
endif
?>
<form action=<? echo $PHP_SELF ?> ENCTYPE="multipart/form-data" method="post">
<input type="hidden" name="sent" value="ok"></input>
Bitte die Upload-Datei wählen:<br>
<input type="file" name="datei"></input><br>
<input type="submit" name="send" value="upload"></input> <br>
(es werden nur bmp/gif/jpg/png-Dateien mit max. 50 kb zugelassen).
</form>