Multiple image uploader
Door PHP Newbie, 22 jaar geleden, 12.519x bekeken
Met dit script kun je meerdere afbeeldingen uploaden. Er gebeurd niks extra's, er wordt alleen gekeken of het bestand jpg is (daar is dit script eigenlijk voor bedoeld, op regel 106 kun je zelf extensie's toevoegen)
Alles staat gewoon in een while loop, dus resizes toevoegen e.d. moet eigenlijk geen enkel probleem zijn.
Dit script werk ideaal samen met het fotoalbum v2 van Arjan, aangezien ik dit script hier ook voor geschreven heb.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 34 reacties op 'Multiple image uploader'
Gesponsorde koppelingen
Ideaal, i.c.m. het Automatisch Fotoalbum V2 script van Arjan Kapteijn!
die $num en for loop heb ik in mijn eigen multiple upload script vervangen door een foreach lusje.
De array ziet er dan bijv. zo uit:
$arr['name'] = 'orginele naam';
$arr['error'] = 0;
$arr['tmp_name'] = 'wertref';
$arr['type'] = 'image/jpeg';
Dit maakt 't geheel gewoon iets flexibeler.
De array ziet er dan bijv. zo uit:
$arr['name'] = 'orginele naam';
$arr['error'] = 0;
$arr['tmp_name'] = 'wertref';
$arr['type'] = 'image/jpeg';
Dit maakt 't geheel gewoon iets flexibeler.
Boaz, dit is voor admins bedoeld. van iemand die foto's op zijn eigen website gaat zetten, verwacht je niet, dat die zichzelf gaat proberen in het zak zetten. Je moet er gewoon voor zorgen, dat geen onbevoegde mensen op deze pagina kunnen. op mime type controleren is dan zeker overbodig. Als je je publiek foto's laat uploaden is dat iets anders natuurlijk. dan kan je nooit genoeg checken!
Beste, ik vind het een schitterend script, net wat ik zocht. In Firefox werkt het prima, maar om één of andere vreemde reden wil het niet werken in Internet Explorer. Alles werkt prima, maar als ik op Uploaden klik, krijg ik geen reactie, er gebeurd echt niets.
Ligt het aan mij, of waar kan het probleem liggen?
update: ik heb het probleem gevonden, er blijkt ergens een foutje te zitten in de div waarin je de form oproept om een nieuwe map te maken. in dreamweaver geeft hij een invalid mark up. ik heb het maken van mappen in een aparte file geschreven, die ik via a href oproep, en nu werkt het ook in IE. Aangezien ik nooit met javascriptjes werk, zou ik dus echt niet weten wat daar de fout kan in zijn...
Ligt het aan mij, of waar kan het probleem liggen?
update: ik heb het probleem gevonden, er blijkt ergens een foutje te zitten in de div waarin je de form oproept om een nieuwe map te maken. in dreamweaver geeft hij een invalid mark up. ik heb het maken van mappen in een aparte file geschreven, die ik via a href oproep, en nu werkt het ook in IE. Aangezien ik nooit met javascriptjes werk, zou ik dus echt niet weten wat daar de fout kan in zijn...
Leuk idee :). Ik post mijn eigen upload script hier ook even, niet als een belediging maar puur om te laten zien dat ik het persoonlijk iets anders zou doen.
Code (php)
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
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
<form action="" method="post" enctype="multipart/form-data">
<p>Met het onderstaande formulier kunt u plaatjes van het type jpg, gif en png uploaden. Houd hierbij rekening met het feit dat er een limiet van 1mb is ingesteld!</p>
<?
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
function randomgenerator($aantaltekens)
{
$kleineletters = range('a','z');
$groteletters = range('A','Z');
$cijfers = range(0,9);
$karakters = array_merge($kleineletters, $groteletters, $cijfers);
$aantal = count($karakters)-1;
$random = null;
for($i=0; $i < $aantaltekens; $i++) {
$random .= $karakters[mt_rand(0, $aantal)];
}
return $random;
}
foreach($_FILES as $afbeelding)
{
$naam = $afbeelding['name'];
$type = $afbeelding['type'];
$temp = $afbeelding['tmp_name'];
$error = $afbeelding['error'];
$size = $afbeelding['size'];
switch($error)
{
case 0:
if(is_uploaded_file($temp))
{
if($type == 'image/jpeg' || $type == 'image/gif' || $type == 'image/png' || $type == 'image/pjpeg')
{
if($size >= 1024000)
{
echo '<p>Sorry, dit bestand is te groot om te worden geupload!</p>';
}else{
$random = randomgenerator(5);
$verplaats = move_uploaded_file($temp, 'uploads/'.$random.'-'.$naam);
if($verplaats == 1)
{
echo '<p>Er is geen error opgetreden. Het bestand is met success geupload</p>';
}else{
echo '<p>Er ging iets mis met het uploaden van '.$naam.', neem contact op met de webmaster.</p>';
}
}
}else{
echo '<p>Sorry, dit bestandsformaat accepteer ik niet! ('.$type.')</p>';
}
}else{
echo '<p>Sorry, dit accepteer ik niet!</p>';
}
break;
case 1:
echo '<p>Error: De grootte van het bestand is groter dan wat de server aankan!</p>';
break;
case 2:
echo '<p>Error: De grootte van het bestand is groter dan 1024kb!</p>';
break;
case 3:
echo '<p>Error: Het bestand is maar gedeeltelijk geupload!</p>';
break;
case 4:
//Geen bestand geupload, we doen niks!
break;
}
}
}
?>
<fieldset>
<legend>Afbeeldingen:</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="1024000">
<label for="1afbeelding" accesskey="1">1) afbeelding: </label>
<input type="file" id="1afbeelding" name="1afbeelding" tabindex="5" title="Afbeelding 1 toevoegen"><br>
<label for="2afbeelding" accesskey="2">2) afbeelding: </label>
<input type="file" id="2afbeelding" name="2afbeelding" tabindex="6" title="Afbeelding 2 toevoegen"><br>
<label for="3afbeelding" accesskey="3">3) afbeelding: </label>
<input type="file" id="3afbeelding" name="3afbeelding" tabindex="7" title="Afbeelding 3 toevoegen"><br>
<label for="4afbeelding" accesskey="4">4) afbeelding: </label>
<input type="file" id="4afbeelding" name="4afbeelding" tabindex="8" title="Afbeelding 4 toevoegen"><br>
<label for="5afbeelding" accesskey="5">5) afbeelding: </label>
<input type="file" id="5afbeelding" name="5afbeelding" tabindex="9" title="Afbeelding 5 toevoegen"><br>
<label for="6afbeelding" accesskey="6">6) afbeelding: </label>
<input type="file" id="6afbeelding" name="6afbeelding" tabindex="10" title="Afbeelding 6 toevoegen"><br>
<label for="7afbeelding" accesskey="7">7) afbeelding: </label>
<input type="file" id="7afbeelding" name="7afbeelding" tabindex="11" title="Afbeelding 7 toevoegen"><br>
<label for="8afbeelding" accesskey="8">8) afbeelding: </label>
<input type="file" id="8afbeelding" name="8afbeelding" tabindex="12" title="Afbeelding 8 toevoegen"><br>
<label for="9afbeelding" accesskey="9">9) afbeelding: </label>
<input type="file" id="9afbeelding" name="9afbeelding" tabindex="13" title="Afbeelding 9 toevoegen"><br>
<label for="10afbeelding" accesskey="10">10) afbeelding: </label>
<input type="file" id="10afbeelding" name="10afbeelding" tabindex="14" title="Afbeelding 10 toevoegen"><br>
</fieldset>
<fieldset>
<legend>Versturen</legend>
<input type="submit" name="versturen" value="Versturen" id="versturen" tabindex="15"> <INPUT type="reset" id="wissen" name="wissen" value="Wissen" tabindex="16">
</fieldset>
</form>
<p>Met het onderstaande formulier kunt u plaatjes van het type jpg, gif en png uploaden. Houd hierbij rekening met het feit dat er een limiet van 1mb is ingesteld!</p>
<?
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
function randomgenerator($aantaltekens)
{
$kleineletters = range('a','z');
$groteletters = range('A','Z');
$cijfers = range(0,9);
$karakters = array_merge($kleineletters, $groteletters, $cijfers);
$aantal = count($karakters)-1;
$random = null;
for($i=0; $i < $aantaltekens; $i++) {
$random .= $karakters[mt_rand(0, $aantal)];
}
return $random;
}
foreach($_FILES as $afbeelding)
{
$naam = $afbeelding['name'];
$type = $afbeelding['type'];
$temp = $afbeelding['tmp_name'];
$error = $afbeelding['error'];
$size = $afbeelding['size'];
switch($error)
{
case 0:
if(is_uploaded_file($temp))
{
if($type == 'image/jpeg' || $type == 'image/gif' || $type == 'image/png' || $type == 'image/pjpeg')
{
if($size >= 1024000)
{
echo '<p>Sorry, dit bestand is te groot om te worden geupload!</p>';
}else{
$random = randomgenerator(5);
$verplaats = move_uploaded_file($temp, 'uploads/'.$random.'-'.$naam);
if($verplaats == 1)
{
echo '<p>Er is geen error opgetreden. Het bestand is met success geupload</p>';
}else{
echo '<p>Er ging iets mis met het uploaden van '.$naam.', neem contact op met de webmaster.</p>';
}
}
}else{
echo '<p>Sorry, dit bestandsformaat accepteer ik niet! ('.$type.')</p>';
}
}else{
echo '<p>Sorry, dit accepteer ik niet!</p>';
}
break;
case 1:
echo '<p>Error: De grootte van het bestand is groter dan wat de server aankan!</p>';
break;
case 2:
echo '<p>Error: De grootte van het bestand is groter dan 1024kb!</p>';
break;
case 3:
echo '<p>Error: Het bestand is maar gedeeltelijk geupload!</p>';
break;
case 4:
//Geen bestand geupload, we doen niks!
break;
}
}
}
?>
<fieldset>
<legend>Afbeeldingen:</legend>
<input type="hidden" name="MAX_FILE_SIZE" value="1024000">
<label for="1afbeelding" accesskey="1">1) afbeelding: </label>
<input type="file" id="1afbeelding" name="1afbeelding" tabindex="5" title="Afbeelding 1 toevoegen"><br>
<label for="2afbeelding" accesskey="2">2) afbeelding: </label>
<input type="file" id="2afbeelding" name="2afbeelding" tabindex="6" title="Afbeelding 2 toevoegen"><br>
<label for="3afbeelding" accesskey="3">3) afbeelding: </label>
<input type="file" id="3afbeelding" name="3afbeelding" tabindex="7" title="Afbeelding 3 toevoegen"><br>
<label for="4afbeelding" accesskey="4">4) afbeelding: </label>
<input type="file" id="4afbeelding" name="4afbeelding" tabindex="8" title="Afbeelding 4 toevoegen"><br>
<label for="5afbeelding" accesskey="5">5) afbeelding: </label>
<input type="file" id="5afbeelding" name="5afbeelding" tabindex="9" title="Afbeelding 5 toevoegen"><br>
<label for="6afbeelding" accesskey="6">6) afbeelding: </label>
<input type="file" id="6afbeelding" name="6afbeelding" tabindex="10" title="Afbeelding 6 toevoegen"><br>
<label for="7afbeelding" accesskey="7">7) afbeelding: </label>
<input type="file" id="7afbeelding" name="7afbeelding" tabindex="11" title="Afbeelding 7 toevoegen"><br>
<label for="8afbeelding" accesskey="8">8) afbeelding: </label>
<input type="file" id="8afbeelding" name="8afbeelding" tabindex="12" title="Afbeelding 8 toevoegen"><br>
<label for="9afbeelding" accesskey="9">9) afbeelding: </label>
<input type="file" id="9afbeelding" name="9afbeelding" tabindex="13" title="Afbeelding 9 toevoegen"><br>
<label for="10afbeelding" accesskey="10">10) afbeelding: </label>
<input type="file" id="10afbeelding" name="10afbeelding" tabindex="14" title="Afbeelding 10 toevoegen"><br>
</fieldset>
<fieldset>
<legend>Versturen</legend>
<input type="submit" name="versturen" value="Versturen" id="versturen" tabindex="15"> <INPUT type="reset" id="wissen" name="wissen" value="Wissen" tabindex="16">
</fieldset>
</form>
Ik heb hetzelfde probleem als Hans Versteegen heeft. Het systeem werkt super alleen kan ik geen mappen kiezen. Simpelweg omdat er geen opties zijn in dat keuze veldje.
Ik heb alles al ge-CHMOD naar 777 maar dat heeft ook geen nut. Ik kan wel een nieuwe map aanmaken dat werkt wel. Maar deze komt ook niet in het lijstje voor daarna.
Wat zit er fout ?
Ik heb alles al ge-CHMOD naar 777 maar dat heeft ook geen nut. Ik kan wel een nieuwe map aanmaken dat werkt wel. Maar deze komt ook niet in het lijstje voor daarna.
Wat zit er fout ?
Ik zou het zo doen:
Code (php)
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
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
<?php
foreach($_FILES as $afbeelding)
{
$naam = $afbeelding['name'];
$type = $afbeelding['type'];
$temp = $afbeelding['tmp_name'];
$error = $afbeelding['error'];
$size = $afbeelding['size'];
switch($error)
{
case 0:
if(is_uploaded_file($temp))
{
if($type == 'image/jpeg' || $type == 'image/gif' || $type == 'image/png')
{
if($size >= 1024000)
{
echo '<p>Sorry, dit bestand is te groot om te worden geupload!</p>';
}else{
//Random nummertje aanmaken.
$random = randomgenerator(5);
//Verplaatsen
if(move_uploaded_file($temp, 'afbeeldingen/'.$random.'-'.$naam))
{
echo '<p>Er is geen error opgetreden. Het bestand is met success geupload</p>';
}else{
echo '<p>Er ging iets mis met het uploaden van '.$naam.', neem contact op met de webmaster.</p>';
}
}
}else{
echo '<p>Sorry, dit bestandsformaat accepteer ik niet!</p>';
}
}else{
echo '<p>Sorry, dit accepteer ik niet!</p>';
}
break;
case 1:
echo '<p>Error: De grootte van het bestand is groter dan wat de server aankan!</p>';
break;
case 2:
echo '<p>Error: De grootte van het bestand is groter dan 1024kb!</p>';
break;
case 3:
echo '<p>Error: Het bestand is maar gedeeltelijk geupload!</p>';
break;
case 4:
//Geen bestand geupload, we doen niks!
break;
}
}
?>
foreach($_FILES as $afbeelding)
{
$naam = $afbeelding['name'];
$type = $afbeelding['type'];
$temp = $afbeelding['tmp_name'];
$error = $afbeelding['error'];
$size = $afbeelding['size'];
switch($error)
{
case 0:
if(is_uploaded_file($temp))
{
if($type == 'image/jpeg' || $type == 'image/gif' || $type == 'image/png')
{
if($size >= 1024000)
{
echo '<p>Sorry, dit bestand is te groot om te worden geupload!</p>';
}else{
//Random nummertje aanmaken.
$random = randomgenerator(5);
//Verplaatsen
if(move_uploaded_file($temp, 'afbeeldingen/'.$random.'-'.$naam))
{
echo '<p>Er is geen error opgetreden. Het bestand is met success geupload</p>';
}else{
echo '<p>Er ging iets mis met het uploaden van '.$naam.', neem contact op met de webmaster.</p>';
}
}
}else{
echo '<p>Sorry, dit bestandsformaat accepteer ik niet!</p>';
}
}else{
echo '<p>Sorry, dit accepteer ik niet!</p>';
}
break;
case 1:
echo '<p>Error: De grootte van het bestand is groter dan wat de server aankan!</p>';
break;
case 2:
echo '<p>Error: De grootte van het bestand is groter dan 1024kb!</p>';
break;
case 3:
echo '<p>Error: Het bestand is maar gedeeltelijk geupload!</p>';
break;
case 4:
//Geen bestand geupload, we doen niks!
break;
}
}
?>
Nee ik zie geen fouten.
Via FF kan ik wel gewoon inloggen maar zie ik de mappen dus niet en in IE log ik in en dan krijg ik direct :
Bestand 1 was leeg
Bestand 2 was leeg
Bestand 3 was leeg
Bestand 4 was leeg
Bestand 5 was leeg
Bestand 6 was leeg
Bestand 7 was leeg
Bestand 8 was leeg
Bestand 9 was leeg
Bestand 10 was leeg
te zien en daaronder het loginveld
Via FF kan ik wel gewoon inloggen maar zie ik de mappen dus niet en in IE log ik in en dan krijg ik direct :
Bestand 1 was leeg
Bestand 2 was leeg
Bestand 3 was leeg
Bestand 4 was leeg
Bestand 5 was leeg
Bestand 6 was leeg
Bestand 7 was leeg
Bestand 8 was leeg
Bestand 9 was leeg
Bestand 10 was leeg
te zien en daaronder het loginveld
Ik heb hem even geprobeerd op mijn server, maar hij weergeeft het volgende:
Ik heb alleen de fotomap aangepast naar ../images/fotomap/ verder niks.
Ik probeerde maar 2 bestanden up te loaden.. :S
Ik heb alleen de fotomap aangepast naar ../images/fotomap/ verder niks.
Code (php)
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
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
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 110
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//12761.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php5cuNy0' to '../images/tut_img//12761.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 1
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 110
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//5029.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpfDoPIk' to '../images/tut_img//5029.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 2
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 110
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//12758.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpVXeQoF' to '../images/tut_img//12758.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 3Bestand 4 was leeg
Bestand 5 was leeg
Bestand 6 was leeg
Bestand 7 was leeg
Bestand 8 was leeg
Bestand 9 was leeg
Bestand 10 was leeg
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//12761.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php5cuNy0' to '../images/tut_img//12761.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 1
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 110
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//5029.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpfDoPIk' to '../images/tut_img//5029.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 2
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 110
Notice: Undefined index: map in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file(../images/tut_img//12758.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpVXeQoF' to '../images/tut_img//12758.jpg' in /home/pimp/domains/pimpjeconsole.nl/public_html/login/upload.php on line 129
Error tijden uploaden van bestand 3Bestand 4 was leeg
Bestand 5 was leeg
Bestand 6 was leeg
Bestand 7 was leeg
Bestand 8 was leeg
Bestand 9 was leeg
Bestand 10 was leeg
Ik probeerde maar 2 bestanden up te loaden.. :S
Ik zit met een probleempje met de extensies
Wat ik ervan heb gemaakt is het volgende:
Dit werkt echter niet. Zodra ik een jpg ga uploaden krijg ik de foutmelding dat de extensie niet wordt ondersteund. Moet ik dit nog anders aangeven? Ik dacht dat dit goed was, maar blijkbaar niet.
Regelnummer is trouwens 106.
Wat ik ervan heb gemaakt is het volgende:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$pathinfo = pathinfo($_FILES['bestand'.$j]['name']); //maak een pathinfo
$ext = $pathinfo["extension"]; //en geef $ext de extensie mee
if($ext != 'jpg' || 'png' || 'bmp' || 'psd' || 'jpeg') //als de extensie niet jpg, png, bmp of psd is
{
$error = 'Bestand wordt niet ondersteund; alleen jpg, png, bmp en psd worden ondersteund'; //echo dat
$ext = $pathinfo["extension"]; //en geef $ext de extensie mee
if($ext != 'jpg' || 'png' || 'bmp' || 'psd' || 'jpeg') //als de extensie niet jpg, png, bmp of psd is
{
$error = 'Bestand wordt niet ondersteund; alleen jpg, png, bmp en psd worden ondersteund'; //echo dat
Dit werkt echter niet. Zodra ik een jpg ga uploaden krijg ik de foutmelding dat de extensie niet wordt ondersteund. Moet ik dit nog anders aangeven? Ik dacht dat dit goed was, maar blijkbaar niet.
Regelnummer is trouwens 106.
Werkende Script:
Code (php)
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
<?php
error_reporting(E_ALL);
session_start();
$dir = "fotoalbum/"; // map voor images
$maxsize = 100000000; // maximum groote images
$num = 10; //aantal afbeeldingen tegelijk
$wachtwoord = 'upload'; //wachtwoord om het script te kunnen gebruiken
if($_SERVER['REQUEST_METHOD'] == 'POST') //als er gepost is
{
if(isset($_POST['login'])) //als ?login bestaat
{
if($_POST['wachtwoord'] == $wachtwoord) //als ?login het wachtwoord bevat
{
header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //een header naar deze pagina
$_SESSION['ingelogd'] = 'OkI'; //sessie zetten dat er ingelogd is
$melding = 'Ingelogd, en ogenblik geduld...'; //en even echooen
}
else //als ?login niet het wachtwoord bevat
{
header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //header refresh naar deze pagina
$melding = 'Niet ingelogd, en ogenblik geduld...'; //en even echooen dat er niet is ingelogd
}
}
}
if(isset($_GET['uitloggen'])) //
{
header('Refresh: 1; URL=fotoalbum.php');
unset($_SESSION['ingelogd']);
$melding = 'Uitgelogd...';
}
?>
<!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>Uploaden</title>
<script language="javascript">
function createmap(id)
{
if(document.getElementById("weergeefcreate"+id).style.display=='none')
{
document.getElementById("weergeefcreate"+id).style.display = '';
document.getElementById("verbergcreate"+id).style.display = 'none';
document.getElementById("createetext"+id).style.display = 'none';
}
else
{
document.getElementById("weergeefcreate"+id).style.display = 'none';
document.getElementById("verbergcreate"+id).style.display = '';
document.getElementById("createetext"+id).style.display = '';
}
}
</script>
</head>
<body>
<?php
if(isset($melding)) //als $melding bestaat
{
exit($melding); //stop het script met de melding
}
$i = 0; //set $i op 0
if($_SERVER['REQUEST_METHOD'] == "POST") //als er gesubmit is
{
if(isset($_POST['creatdir'])) //als er een nieuwe map aangemaakt moet worden
{
if(!empty($_POST['mapname'])) //en de map naaam is niet leeg
{
if(!is_dir($dir.$_POST['mapname'])) //en als de map nog niet bestaat
{
mkdir($dir.$_POST['mapname'], 0755); //maak de map dan aan
echo 'de map '.$_POST['mapname'].' is aangemaakt<br><br>'; //en echo dat de map is aangemaakt
}
else //als de map al bestaat
{
echo 'map bestaat al<br><br>'; //echo dat de map al bestaat
}
}
else //als de mapnaam leeg is
{
echo '<b>de opgegeven bestandsnaam is leeg</b><br><br>'; //echo dat de mapnaam leeg is
}
unset($_POST); //unset de post variabele
}
else //als er geen nieuwe map aangemaakt moet worden
{
if(!is_dir($dir)) //als de opgegeven map niet bestaat
{
mkdir ($dir, 0700); //maak de map aan
}
$j = 1; //set $j op 1
while($j <= $num) //als $j kleiner of gelijk aan het nummer van de uploads is
{
if(!empty($_FILES['bestand'.$j]['name'])) //als het bestand niet leeg is
{
$pathinfo = pathinfo($_FILES['bestand'.$j]['name']); //maak een pathinfo
$ext = $pathinfo["extension"]; //en geef $ext de extensie mee
if($ext != 'jpg') //als de extensie niet jpg is
{
$error = 'Bestand is geen jpg'; //echo dat
}
elseif(file_exists($dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //als het bestand al bestaat
{
$error = 'Bestand '.$j.' bestaat al'; //echo dat
}
elseif($_FILES['bestand'.$j]['size'] > $maxsize) //als het bestand groter is dan de opgegeven grootte
{
$error = 'Bestand is te groot'; //dan geven dat mee aan de echo ;-)
}
else //als al het bovenstaande niet zo is :-p
{
$error = NULL; //set $error dan op 0
}
if(!empty($error)) //als error niet leeg is
{
echo '<b>Er is een fout op getreden bij bestand '.$j.':</b><br>'.$error.'<br /><br />'; //echo de error
}
else //als de error wel leeg is
{
if(move_uploaded_file($_FILES['bestand'.$j]['tmp_name'], $dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //verplaats het bestand
{
echo 'Bestand '.$j.' is succesvol geupload:<br>
<br>
<img src="'.$dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'].'" alt="'.$_FILES['bestand'.$j]['name'].'" width="200px"><br>
<br>'; //en echo dat alles is gelukt
}
else //als het bestand niet verplaatst kon worden
{
echo 'Error tijden uploaden van bestand '.$j; //echo dat
}
}
}
else //als het bestand wel leeg is
{
echo '<b>Bestand '.$j.' was leeg</b><br /><br />'; //echo dat het bestand leeg is
}
$j++; //verhoog $j met 1
} //einde while
}
}
if(!isset($_SESSION['ingelogd'])) //als de sessie ingelogd niet bestaat
{ //geef het inlog form
?>
<form method="post" action="#">
Wachtwoord: <input type="password" name="wachtwoord" /><br />
<br />
<input type="submit" name="login" value="Log in!" />
</form>
<?php
}
else //als de sessie ingelogd wel bestaat
{ //echo het upload form
?>
<form action="#" method="post" enctype="multipart/form-data" name="form" id="form">
Selecteer een doelmap:
<select name="map" style="z-index: 1;">
<?php
$handle = opendir($dir);
while (($file = readdir($handle)) != FALSE)
{
if (($file != ".") && ($file != "..") && (filetype($dir.$file)== "dir"))
{
echo '<option value="'.$file.'">'.$file.'</option>';
}
}
?>
</select>
<br />
<div id="weergeefcreate1" onclick="createmap(1)" style="cursor:pointer; float: left;">
<i>Of klik hier en maak een nieuwe map aan</i>
</div>
<div id="createetext1" style="display:none; position:absolute; width: 350px; background-color:#999999; z-index: 3;">
<h4 align="center">Maak een nieuwe map aan</h4>
Nieuwe map naam: <input type="text" name="mapname" /><br />
<br />
<input type="submit" name="creatdir" value="Maak map aan" />
<div id="verbergcreate1" style="display:none;">
<input name="createe_text" type="button" value="cancel" onclick="createmap(1)" />
</div>
</div>
<br />
<br />
<?php
$i = 1;
while($i <= $num)
{
echo 'Foto '.$i.' <input name="bestand'.$i.'" type="file" id="bestand"><br />';
$i++;
}
?>
<br />
<input name="uploaden" type="submit" id="uploaden" value="Uploaden">
</form>
<br />
<br />
<a href="?uitloggen=ja">uitloggen</a>
<?php
}
?>
</body>
</html>
error_reporting(E_ALL);
session_start();
$dir = "fotoalbum/"; // map voor images
$maxsize = 100000000; // maximum groote images
$num = 10; //aantal afbeeldingen tegelijk
$wachtwoord = 'upload'; //wachtwoord om het script te kunnen gebruiken
if($_SERVER['REQUEST_METHOD'] == 'POST') //als er gepost is
{
if(isset($_POST['login'])) //als ?login bestaat
{
if($_POST['wachtwoord'] == $wachtwoord) //als ?login het wachtwoord bevat
{
header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //een header naar deze pagina
$_SESSION['ingelogd'] = 'OkI'; //sessie zetten dat er ingelogd is
$melding = 'Ingelogd, en ogenblik geduld...'; //en even echooen
}
else //als ?login niet het wachtwoord bevat
{
header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //header refresh naar deze pagina
$melding = 'Niet ingelogd, en ogenblik geduld...'; //en even echooen dat er niet is ingelogd
}
}
}
if(isset($_GET['uitloggen'])) //
{
header('Refresh: 1; URL=fotoalbum.php');
unset($_SESSION['ingelogd']);
$melding = 'Uitgelogd...';
}
?>
<!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>Uploaden</title>
<script language="javascript">
function createmap(id)
{
if(document.getElementById("weergeefcreate"+id).style.display=='none')
{
document.getElementById("weergeefcreate"+id).style.display = '';
document.getElementById("verbergcreate"+id).style.display = 'none';
document.getElementById("createetext"+id).style.display = 'none';
}
else
{
document.getElementById("weergeefcreate"+id).style.display = 'none';
document.getElementById("verbergcreate"+id).style.display = '';
document.getElementById("createetext"+id).style.display = '';
}
}
</script>
</head>
<body>
<?php
if(isset($melding)) //als $melding bestaat
{
exit($melding); //stop het script met de melding
}
$i = 0; //set $i op 0
if($_SERVER['REQUEST_METHOD'] == "POST") //als er gesubmit is
{
if(isset($_POST['creatdir'])) //als er een nieuwe map aangemaakt moet worden
{
if(!empty($_POST['mapname'])) //en de map naaam is niet leeg
{
if(!is_dir($dir.$_POST['mapname'])) //en als de map nog niet bestaat
{
mkdir($dir.$_POST['mapname'], 0755); //maak de map dan aan
echo 'de map '.$_POST['mapname'].' is aangemaakt<br><br>'; //en echo dat de map is aangemaakt
}
else //als de map al bestaat
{
echo 'map bestaat al<br><br>'; //echo dat de map al bestaat
}
}
else //als de mapnaam leeg is
{
echo '<b>de opgegeven bestandsnaam is leeg</b><br><br>'; //echo dat de mapnaam leeg is
}
unset($_POST); //unset de post variabele
}
else //als er geen nieuwe map aangemaakt moet worden
{
if(!is_dir($dir)) //als de opgegeven map niet bestaat
{
mkdir ($dir, 0700); //maak de map aan
}
$j = 1; //set $j op 1
while($j <= $num) //als $j kleiner of gelijk aan het nummer van de uploads is
{
if(!empty($_FILES['bestand'.$j]['name'])) //als het bestand niet leeg is
{
$pathinfo = pathinfo($_FILES['bestand'.$j]['name']); //maak een pathinfo
$ext = $pathinfo["extension"]; //en geef $ext de extensie mee
if($ext != 'jpg') //als de extensie niet jpg is
{
$error = 'Bestand is geen jpg'; //echo dat
}
elseif(file_exists($dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //als het bestand al bestaat
{
$error = 'Bestand '.$j.' bestaat al'; //echo dat
}
elseif($_FILES['bestand'.$j]['size'] > $maxsize) //als het bestand groter is dan de opgegeven grootte
{
$error = 'Bestand is te groot'; //dan geven dat mee aan de echo ;-)
}
else //als al het bovenstaande niet zo is :-p
{
$error = NULL; //set $error dan op 0
}
if(!empty($error)) //als error niet leeg is
{
echo '<b>Er is een fout op getreden bij bestand '.$j.':</b><br>'.$error.'<br /><br />'; //echo de error
}
else //als de error wel leeg is
{
if(move_uploaded_file($_FILES['bestand'.$j]['tmp_name'], $dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //verplaats het bestand
{
echo 'Bestand '.$j.' is succesvol geupload:<br>
<br>
<img src="'.$dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'].'" alt="'.$_FILES['bestand'.$j]['name'].'" width="200px"><br>
<br>'; //en echo dat alles is gelukt
}
else //als het bestand niet verplaatst kon worden
{
echo 'Error tijden uploaden van bestand '.$j; //echo dat
}
}
}
else //als het bestand wel leeg is
{
echo '<b>Bestand '.$j.' was leeg</b><br /><br />'; //echo dat het bestand leeg is
}
$j++; //verhoog $j met 1
} //einde while
}
}
if(!isset($_SESSION['ingelogd'])) //als de sessie ingelogd niet bestaat
{ //geef het inlog form
?>
<form method="post" action="#">
Wachtwoord: <input type="password" name="wachtwoord" /><br />
<br />
<input type="submit" name="login" value="Log in!" />
</form>
<?php
}
else //als de sessie ingelogd wel bestaat
{ //echo het upload form
?>
<form action="#" method="post" enctype="multipart/form-data" name="form" id="form">
Selecteer een doelmap:
<select name="map" style="z-index: 1;">
<?php
$handle = opendir($dir);
while (($file = readdir($handle)) != FALSE)
{
if (($file != ".") && ($file != "..") && (filetype($dir.$file)== "dir"))
{
echo '<option value="'.$file.'">'.$file.'</option>';
}
}
?>
</select>
<br />
<div id="weergeefcreate1" onclick="createmap(1)" style="cursor:pointer; float: left;">
<i>Of klik hier en maak een nieuwe map aan</i>
</div>
<div id="createetext1" style="display:none; position:absolute; width: 350px; background-color:#999999; z-index: 3;">
<h4 align="center">Maak een nieuwe map aan</h4>
Nieuwe map naam: <input type="text" name="mapname" /><br />
<br />
<input type="submit" name="creatdir" value="Maak map aan" />
<div id="verbergcreate1" style="display:none;">
<input name="createe_text" type="button" value="cancel" onclick="createmap(1)" />
</div>
</div>
<br />
<br />
<?php
$i = 1;
while($i <= $num)
{
echo 'Foto '.$i.' <input name="bestand'.$i.'" type="file" id="bestand"><br />';
$i++;
}
?>
<br />
<input name="uploaden" type="submit" id="uploaden" value="Uploaden">
</form>
<br />
<br />
<a href="?uitloggen=ja">uitloggen</a>
<?php
}
?>
</body>
</html>
Om te reageren heb je een account nodig en je moet ingelogd zijn.
Inhoudsopgave
Labels
- Geen tags toegevoegd.
PHP hulp
0 seconden vanaf nu