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>

No comments yet.

Write a comment: