Fileupload
Das folgende Script erlaubt es Dateien mit definierten Dateiendungen auf den Server zu laden.
Die Dateinamen werden automatisch erweitert, wenn es die entsprechende Datei schon auf dem Server gibt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <?php // Zielverzeichnis (WICHTIG: Mit "/" abschliessen!!!) $folder = "daten/"; // Maximale Dateigröße (in Bytes) $max_filesize = "2048000"; // Array der zulässigen Endungen $extensions = array( "jpg", "gif", "png", "doc", "pdf" ); function random($laenge) { $signs = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789"; $name_new = ""; mt_srand ((double) microtime() * 1000000); for ($i = 0; $i < $laenge; $i++) $name_new .= $signs{mt_rand (0,strlen($signs))}; return $name_new; } function createName($pname, $ftype){ global $folder; $pname .= random(3); if(file_exists($folder.$pname.".".$ftype)) return createName($pname, $ftype); else return $pname.".".$ftype; } function fileupload(){ global $folder; global $max_filesize; global $extensions; if(!empty($_FILES['datei']['name'])){ $fname = $_FILES['datei']['name']; $split = explode(".", $fname); $pname = $split[0]; $ftype = $split[1]; if(!in_array($ftype, $extensions)) return "Die von Ihnen ausgewählte Datei hat keine zulässige Dateiendung."; if($_FILES['datei']['size'] > $max_filesize) return "Die von Ihnen ausgewählte Datei ist für einen Upload zu groß."; if(file_exists($folder.$fname)){ $fname = createName($pname, $ftype); $info = "<br /><strong>Die Datei musste unbenannt werden, weil eine Datei mit gleichem Dateinamen schon auf dem Server existiert.</strong>"; } if(!move_uploaded_file($_FILES['datei']['tmp_name'], $folder.$fname)) return "Der Upload ist fehlgeschalgen, bitte versuchen Sie es erneut."; return "Die Datei \"$fname\" ist erfolgreich hochgeladen worden.$info"; } else return "Sie haben keine Datei zum upload ausgewählt!"; } if(!empty($_POST['fload'])) $upload = fileupload(); ?> <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Dateiupload</title> <style type="text/css"> #ausgabe{ font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 0.8em; font-weight: normal; color: #f00; } </style> </head> <body> <p>Ihr Dateiupload:</p> <form name="form1" id ="form1" method="post" enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>"> <label for="datei">Datei: </label> <input type="file" name ="datei" id="datei" /> <input type="submit" name="fload" id="fload" value="Upload starten" /> </form> <div id="ausgabe"><?=$upload;?></div> </body> </html> |