Geschrieben von jkbox am 01.05.2005, 11:00

Hallo alle zusammen in diesem Toturial ist ein Beispiel für Ein Dateiupload wo man:
1. Dateien hochladen kann
2. Die Dateien ansehen kann
3. Einen Zugangsschutz für den Uploader einrichten

Das beste diese Drei sachen passieren sind alle in einem Script!

1.Der Schutz:

Legt eine Neue Textdatei an, bennent sie anschliesendin upload.php um, öffnent die Datei mit dem Texteditor und schreibt hinein:

<?
$login_check=true; // Legt fest ob nur feste User Zugriff haben! (true oder false)

function CheckLogin($user, $password)
{
$AnzUser=1; // hier die Anzahl der Benutzer eingeben (0 zählt auch mit)
$benutzer[0] = "Admin"; $passwort[0] = "demo"; // Legt die Benutzerdaten
$ret=false;

for ($i=0; $i<$AnzUser; $i++)
{
if ($user==$benutzer[$i] && $password==$passwort[$i])
{
$ret=true;
}
}
return ($ret);
}

if($login_check)
{
if(!CheckLogin($_SERVER[PHP_AUTH_USER],$_SERVER[PHP_AUTH_PW]))
{
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Mitgliederbereich"');
echo "Ungültiger Benutzer!";
exit;
}
}
?>

Das war der Schutz ihr könnt ihn mit true oder false ein, bzw. ausschalten

2. Der Uploader:

Fals ihr den Schutz eingebaut habt schreibt in die uplaod.php weiter hinein.
Wenn nicht dan legt eine an und zwar heist sie wie oben upload.php. (Zum erstellen siehe oben zur genauen beschreibung)

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="20; // automatiches aktualiesieren wichtig wenn mehrere Benutzer gleichzeitih was hochladen
URL=http://hier muss eure adresse stehen zu der upload.php">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>File-Upload</title>
</head>

<body>

<?php
function filesizepre($filesize){ return round( ($filesize / 1024),1 )."kB"; }


$filter['tar']="";
$filter['doc']="";
$filter['zip']="";
$filter['ace']="";
$filter['rar']="";
$filter['xls']="";
$filter['htm']="";
$filter['html']="";
$filter['php']="";
$filter['mp3']="";
$filter['ico']="";
$filter['mdb']="";
$filter['ini']="";
$filter['wma']="";
$filter['wmv']="";
$filter['avi']="";
$filter['mpeg']="";

$filtertyp='nonethis'; // onlythis für nur das oder nonethis für nichts von dem
$maxsize="1000000"; // 1000000 = ca. 1 MB
$upload_dir='hier euer upload ordner (z.B. upload/)';
if(!empty($datei))
{
$dateiname=$datei_name;
$dateiinfo=pathinfo($datei_name);
$filterok=false;

if (!isset($filter[$dateiinfo['extension']]) && $filtertyp=='nonethis')
{
$filterok=true;
}
elseif (isset($filter[$dateiinfo['extension']]) && $filtertyp=='onlythis')
{
$filterok=true;
}

if($filterok && $datei_size <=$maxsize)
{
$z=0;
while(file_exists($upload_dir.$dateiname))
{
$z++;
$dateiname="($z)_".$datei_name;
}

copy($datei,$upload_dir.$dateiname);
if( file_exists($upload_dir.$dateiname))
{
echo "<br>Deine Datei <b>$dateiname</b> wurde mit <b> $datei_size Byte</b> erfolgreich hochgeladen.<BR>
<b><a href=".$upload_dir.$dateiname." >$dateiname</a></b>";
}
else
{
echo "Die Datei-Übertragung ist fehlgeschlagen!<BR>";
}

}
elseif($datei_size >$maxsize)
{
echo "Die Datei-Größe ist mit einer Größe von $datei_size Bytes über dem Limit ($maxsize Bytes)!<BR>";
}
elseif(!$filterok)
{
echo "<b>Upload verweigert!!</b><BR>";
echo "Die Datei Endung ist aus Sicherheitsgründen nicht erlaubt!<BR>";
}
}
?>
<form enctype='multipart/form-data' action='http://hier muss eure adresse stehen zu der upload.php' method='post' id=form1 name=form1>
<input type='hidden' name='check' value='1'/>
<input type='file' name='datei'/><br/>
<input type='submit' value='hochladen'/ id='submit'1 name='submit'1><br/>
</form>
<BR>

<?php
$verzeichnis = opendir("hier wieder euer upload ordner (z.B. upload/)");
// $pattern = ".|..|";
$pattern = ".|";
echo " <br/><br/>\n";
echo " <table>\n";
echo " <tr>\n";
echo " <th>Datei</th>\n";
echo " <th>Größe</th>\n";
echo " <th>Datum/Uhrzeit</th>\n";
echo " </tr>\n";
while($dirfile = readdir($verzeichnis))
{
if(!ereg($dirfile,$pattern) && !is_dir($dirfile))
{

echo " <tr>\n";
echo ' <td><a href="'.$upload_dir.$dirfile.'">'.$dirfile."</a></td>\n";
echo " <td>".filesizepre(@filesize($upload_dir.$dirfile))."</td>\n";
echo " <td>".date("j.M.Y h:iA", @filemtime($upload_dir.$dirfile))."</td>\n";
echo " </tr>\n";
}
}
echo ' </table>'."\n";
closedir ($verzeichnis);
?>
</body>
</html>

Ja das wars eigentlich schon

JKBox

Bewertung Anzahl
6
64,3 %
9 Bewertungen
5
7,1 %
1 Bewertungen
4
21,4 %
3 Bewertungen
1
7,1 %
1 Bewertungen