|
Maximale Dateiuploadgröße mit PHP ermitteln |
|
Dienstag, 19. September 2006 |
http://www.webmaster-resource.de/tricks/php/maximale-dateiuploadgroesse-mit-php-ermitteln.php
Über Formulare können Sie Ihren Besuchern anbieten, Dateien auf Ihren Webserver hochzuladen. Um Ihren Besuchern automatisch anzuzeigen, wie groß die hochzuladende Datei maximal sein darf, können Sie dieses kleine PHP-Script in Ihre Webseite einfügen.
Im folgenden Beispiel wird mit Hilfe der Funktion UploadmoeglichkeitPruefen(...) ermittelt, ob es überhaupt möglich ist, Dateien auf Ihren Webserver zu übertragen. Sie finden diese Einstellung in der PHP-Konfigurationsdatei "php.ini" (unter "file_uploads = on"). Sofern das Hochladen von Dateien grundsätzlich gestattet ist, liefert die Funktion MaximaleDateiuploadGroesseErmitteln(...) die entsprechende maximale Größe für den Upload der Datei als Zahl in Bytes zurück. Diesen Wert können Sie ebenfalls in der PHP-Konfigurationsdatei unter "upload_max_filesize = 2M" bzw. "post_max_size = 2M" anpassen.
Quellcode
1.
<?php
2.
3.
function PHPINIWertUmwandeln($Groesse)
4.
{
5.
$Werte['MB'] = 1048576;
6.
$Werte['Mb'] = 1048576;
7.
$Werte['M'] = 1048576;
8.
$Werte['m'] = 1048576;
9.
$Werte['KB'] = 1024;
10.
$Werte['Kb'] = 1024;
11.
$Werte['K'] = 1024;
12.
$Werte['k'] = 1024;
13.
14.
while(list($Schluessel) = each($Werte))
15.
{
16.
if((strlen($Groesse) > strlen($Schluessel)) && (substr($Groesse, strlen($Groesse)-strlen($Schluessel)) == $Schluessel))
17.
{
18.
$Groesse = substr($Groesse, 0, strlen($Groesse)-strlen($Schluessel))*$Werte[$Schluessel];
19.
brea
k;
20.
}
21.
}
22.
return $Groesse;
23.
}
24.
25.
function UploadmoeglichkeitPruefen()
26.
{
27.
$Uploadmoeglichkeit = TRUE;
28.
29.
if(strtolower(@ini_get('file_uploads'))=='off' || @ini_get('file_uploads')==0)
30.
{
31.
$Uploadmoeglichkeit=FALSE;
32.
}
33.
34.
return $Uploadmoeglichkeit;
35.
}
36.
37.
function MaximaleDateiuploadGroesseErmitteln()
38.
{
39.
$MaximaleDateiuploadGroes
se = 0;
40.
41.
if($Dateigroesse = @ini_get('upload_max_filesize'))
42.
{
43.
$MaximaleDateiuploadGroesse = PHPINIWertUmwandeln($Dateigroesse);
44.
}
45.
46.
if($Postgroesse = @ini_get('post_max_size'))
47.
{
48.
$Postgroesse = PHPINIWertUmwandeln($Postgroesse);
49.
50.
if($Postgroesse < $MaximaleDateiuploadGroesse)
51.
{
52.
$MaximaleDateiuploadGroesse = $Postgroesse;
53.
}
54.
}
55.
56.
return$MaximaleDateiuploadGroesse;
57.
}
58.
59.
60.
if(
UploadmoeglichkeitPruefen())
61.
{
62.
$MaximaleDateiuploadGroesse=Maxima
leDateiuploadGroesseErmitteln();
63.
echo"Sie können Dateien hochladen!
",
64.
"Die maximale Uploadgröße beträgt ",
65.
number_format($MaximaleDateiuploadGroesse/1024, 0, ",", "."),
66.
" kB (",
67.
$MaximaleDateiuploadGroesse,
68.
" Bytes).";
69.
}
70.
else
71.
{
72.
echo"Sie können keine Dateien hochladen!";
73.
}
74.
75.
?> |