Bestanden uploaden

Toelichting

Met dit script kun je op een veilige manier bestanden uploaden naar je eigen server. Met de 3 config variabelen aan het begin van het script is het mogelijk om de toegestane extensies, de upload directory en de maximum bestandsgrootte in te stellen.

Voorbeeld

Klik hier voor een voorbeeld

Script

Code
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
ini_set
('display_errors'1);
error_reporting(E_ALL);

/********************************************************
* CONFIG Variabelen:                                    *
*                                                        *
* ARRAY $allowed: array met alle toegestane extensies   *
* STRING $dir: locatie waar bestanden geuplaod worden   *
* INT $maxsize: maximum bestandsgrootte in bytes        *
********************************************************/

$allowed = array('jpg''jpeg''gif''doc'); 
$dir 'uploads/';
$maxsize 0

if(
$_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(
is_uploaded_file($_FILES['bestand']['tmp_name']))
    {
        
$pathinfo pathinfo($_FILES['bestand']['name']);
        if(
in_array($pathinfo['extension'], $allowed))
        {
            
// De bestandsnaam van het uiteindelijke bestand
            // Natuurlijk naar eigen wens aan te passen.
            
$file $_FILES['bestand']['name'];
            
            if(
$_FILES['bestand']['size'] < $maxsize)
            {
                if(
move_uploaded_file($_FILES['bestand']['tmp_name'], $dir.$file))
                {
                    
$content[] = '<p>Het bestand: '.$file.' is succesvol geupload.</p>';
                    
$content[] = '<p>De locatie van het bestand is: '.$dir.$file;
                }
                else
                {
                    
$errors[] = '<p>Er is iets fout gegaan tijdens het uploaden</p>';
                }
            }
            else
            {
                if(
$maxsize == 0)
                {
                    
$errors[] = '<p>Het uploaden van bestanden is uitgeschakeld</p>';
                }
                else
                {
                    
$errors[] = '<p>Het bestand is te groot.</p>';
                }
            }
        }
        else
        {
            
$errors[] = '<p>Deze extensie is niet toegestaan!</p>';
        }
    }
    else
    {
        
$errors[] = '<p>Er is geen bestand opgegeven</p>';
    }
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Jorendewit.nl - PHP Scripts - Bestanden uploaden</title>
    
    <link rel="stylesheet" href="../styles/default.css" type="text/css" media="screen" />
    
</head>

<body>

    <div id="wrap">
        <p class="none small align-right"><a href="/view/13/">&lt;-- Terug naar Scripts</a></p>
        <h1>Bestanden uploaden</h1>
        <div id="info">
            <p>PHP versie: &gt;= 4.1.0</p>
        </div>
                
        <form action="#" method="post" id="upload" enctype="multipart/form-data">
            <p>
                <label class="field" for="bestand">Bestand:</label>
                <input type="file" name="bestand" id="bestand" />
                <input type="submit" value="Uploaden" />
            </p>
        </form>
        
        <?php
        
// Weergeven van meldingen uit het phpscript.
        
if(isset($errors))
        {
            echo 
'<ul>';
            foreach(
$errors as $error);
            {
                echo 
'<li>'.$error.'</li>';
            }
            echo 
'</ul>';
        }
        elseif(isset(
$content))
        {
            foreach(
$content as $line)
            {
                echo 
$line;
            }
        }
        
?>
        
    </div>
        
</body>
</html>

Reacties