index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Bilder</title>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<?php
include("config.inc.php");
?>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="file" name="datei"/>
<input type="submit" value="Hochladen"/>
</form>
<hr/>
<?php
// auszulesender Ordner
$handle = opendir ($handleDir);
$fileArray = array();
// Erlaubte Endungen (Maximal 3 Buchstaben)
while ($files = readdir ($handle))
{
if (!is_dir($files) && $files != ".." && $files != "." && in_array(strtolower(substr($files,-3)),$permittedFiles))
{
array_push($fileArray,$files);
}
}
closedir($handle);
// Ausgabe der Bilder
foreach($fileArray as $file)
{
?>
<div style="margin-bottom:20px">
<a href="<?php echo $handleDir.$file; ?>" rel="lightbox[roadtrip]"><img src="<?php echo $handleDir.$file; ?>" alt="Bild!" width="100" height="100" border="0" /></a>
</div>
<?php
}
?>
</body>
</html>
Alles anzeigen
upload.php
<?php
include("config.inc.php");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$fileName = trim(str_replace($killChars, "", substr($_FILES['datei']['name'],0,-4)).substr($_FILES['datei']['name'],-4));
if(!empty($fileName))
{
if(in_array(strtolower(substr($fileName,-3)), $permittedFiles))
{
if($_FILES['datei']['size'] < 10000000)
{
if(move_uploaded_file($_FILES['datei']['tmp_name'], $handleDir.$fileName))
{
echo "Datei wurde hochgeladen!";
}
else
{
echo "Fehler beim Upload";
}
}
else
{
echo "Das Bild darf nicht größer als 10 MB sein ";
}
}
else
{
echo "Dateiendung wird nicht akzeptiert! (Erlaubte Formate: ".implode(",",$permittedFiles).")";
}
}
else
{
echo "Dateiname nicht zulässig!";
}
}
else
{
echo "Fehler!";
}
echo ' <a href="index.php">Zurück</a>';
?>
Alles anzeigen
config.inc.php
<?php
$killChars = array("?","!","'","´","`","-","=","/","(",")","#","+",",",".",";",":","ß"," ");
$handleDir = "./";
$permittedFiles = array("jpg","gif");
?>
Jetzt hab ich natürlichen den diggen raushängen lassen und bekomm den RegEx nicht hin. prinzipiell ist meine Lösung um den Dateinamen zu fixen schlecht!
man muss das ganze mit einem preg_replace machen:
preg_replace('![^0-9]!', '', $nr);
jedoch ist dieser nur für Zahlen, vielleicht schaut ja noch jemand rein und baut dir einen
schönen preg_replace der nur Zahlen und Buchstaben durchlässt und den rest löscht