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
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
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/"><-- Terug naar Scripts</a></p>
<h1>Bestanden uploaden</h1>
<div id="info">
<p>PHP versie: >= 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>
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/"><-- Terug naar Scripts</a></p>
<h1>Bestanden uploaden</h1>
<div id="info">
<p>PHP versie: >= 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>