Afbeelding komt niet in zijn map
Ik heb een upload script en loop tegen een raar probleem aan. Hij plaatst de image wel in een thumb map, maar niet in de originele map waar ik em et liefst wil. Enig idee hoe dit kan?
Code heb ik al eens eerder gebruikt en werkte het fantastisch!
Volle code:
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
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
<?php
// Upload map
$UploadMap = $_SERVER['DOCUMENT_ROOT'] . '/latin2/images/gallery/';
$FotoNaam = '';
$Bericht = array ();
// Toegestane extenties
$FotoExt = array('.jpg', '.jpeg', '.gif', '.png');
$FotoMIME = array ('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif');
// Maximale grote
$MaxFotoSize = 5000000;
// Thumbnail grote
$ThumbSize = 90;
echo '
<fieldset class="fieldset_cfg"><legend>Nieuwe foto</legend>
<form action="index.php?page=admin&act=pictures" method="post" enctype="multipart/form-data">
<label for="name" class="label_cfg">Foto naam:</label> <input type="text" name="picture_title" class="input_cfg" id="name">
<label for="date" class="label_cfg">Datum:</label> <input type="text" name="datum" class="input_cfg" id="date">
<label for="upload" class="label_cfg">Kies je afbeelding:</label> <input type="file" name="afbeelding" id="file" class="input_cfg" id="upload">
<input type="submit" value="Toevoegen" name="add_image" class="input_cfg"></fieldset>
';
if (isset($_POST['add_image'])){
//Standaarden:
$Foto = $_FILES['afbeelding'];
$FotoNaam = $Foto['name'];
echo 'stap 1';
if (isset($_FILES['afbeelding']))
{
//Als de query enige resultaten bevat
echo 'stap3';
switch ($Foto['error'])
{
case UPLOAD_ERR_OK:
// Controle voor afbeeldings grote
if ($Foto['size'] > $MaxFotoSize)
{
$Bericht[] = 'De foto is te groot. Hij mag niet groter zijn dan <b>' .$MaxFotoSize. '</b>';
}
if(@!getimagesize($_FILES['afbeelding']['tmp_name']))
{
$Bericht[] = 'Deze foto heeft geen breedte of hoogte';
}
break;
case UPLOAD_ERR_INI_SIZE:
$Bericht[] = 'De foto is te groot.';
break;
case UPLOAD_ERR_PARTIAL:
$Bericht[] = 'Er is een fout opgetreden tijdens het uploaden';
break;
case UPLOAD_ERR_NO_FILE:
$Bericht[] = 'U heeft geen foto opgegeven om te uploaden';
break;
default:
$Bericht[] = 'Er is een onbekende fout opgetreden';
break;
} // Einde switch
if (empty($Bericht))
{
if (!in_array($Foto['type'], $FotoMIME ))
{
$Bericht[] = 'Deze extensie is niet toegestaan!';
}
// Extensie controleren
if(!in_array(strtolower(strrchr($_FILES['afbeelding']['name'], '.')), $FotoExt))
{
$Bericht[] = ' Deze foto extentie is niet toegestaan';
}
// Already excist check
if (file_exists($FotoNaam))
{
$Bericht[] = 'Er bestaat al een foto met deze naam!';
}
if (!move_uploaded_file ($Foto['tmp_name'] , $FotoNaam))
{
echo "Fout met de afbeelding. Kon deze niet toevoegen!";
}
list ($Breedte, $Hoogte, $ImageType) = getimagesize ($FotoNaam);
$ImageRatio = $Breedte / $Hoogte;
if ($ImageRatio > 1)
{
$TnBreedte = $ThumbSize;
$TnHoogte = $ThumbSize / $ImageRatio;
}
else
{
$TnHoogte = $ThumbSize;
$TnBreedte = $ThumbSize * $ImageRatio;
}
$Thumb = imagecreatetruecolor ($TnBreedte, $TnHoogte);
switch ($ImageType)
{
case IMAGETYPE_GIF:
$Source = imagecreatefromgif ($FotoNaam);
break;
case IMAGETYPE_JPEG:
$Source = imagecreatefromjpeg ($FotoNaam);
break;
case IMAGETYPE_PNG:
$Source = imagecreatefrompng ($FotoNaam);
break;
default:
$Source = imagecreatefromgif ($FotoNaam);
break;
}
imagecopyresampled ($Thumb, $Source, 0, 0, 0, 0, $TnBreedte, $TnHoogte, $Breedte, $Hoogte);
// Naam thumb
$Thumbname = $UploadMap . './thumbnails/' . 'tn_' . $_FILES['afbeelding']['name'];
switch ($ImageType)
{
case IMAGETYPE_GIF:
imagegif ($Thumb, $Thumbname);
break;
case IMAGETYPE_JPEG:
imagejpeg ($Thumb, $Thumbname, 100);
break;
case IMAGETYPE_PNG:
imagepng ($Thumb, $Thumbname);
break;
}
$Bericht[] = 'Uw foto is succesvol opgeslagen in het fotoalbum!';
}
}
//Sluiten van file submit
}
//Else afsluiten voor veldcontrole
?>
// Upload map
$UploadMap = $_SERVER['DOCUMENT_ROOT'] . '/latin2/images/gallery/';
$FotoNaam = '';
$Bericht = array ();
// Toegestane extenties
$FotoExt = array('.jpg', '.jpeg', '.gif', '.png');
$FotoMIME = array ('image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif');
// Maximale grote
$MaxFotoSize = 5000000;
// Thumbnail grote
$ThumbSize = 90;
echo '
<fieldset class="fieldset_cfg"><legend>Nieuwe foto</legend>
<form action="index.php?page=admin&act=pictures" method="post" enctype="multipart/form-data">
<label for="name" class="label_cfg">Foto naam:</label> <input type="text" name="picture_title" class="input_cfg" id="name">
<label for="date" class="label_cfg">Datum:</label> <input type="text" name="datum" class="input_cfg" id="date">
<label for="upload" class="label_cfg">Kies je afbeelding:</label> <input type="file" name="afbeelding" id="file" class="input_cfg" id="upload">
<input type="submit" value="Toevoegen" name="add_image" class="input_cfg"></fieldset>
';
if (isset($_POST['add_image'])){
//Standaarden:
$Foto = $_FILES['afbeelding'];
$FotoNaam = $Foto['name'];
echo 'stap 1';
if (isset($_FILES['afbeelding']))
{
//Als de query enige resultaten bevat
echo 'stap3';
switch ($Foto['error'])
{
case UPLOAD_ERR_OK:
// Controle voor afbeeldings grote
if ($Foto['size'] > $MaxFotoSize)
{
$Bericht[] = 'De foto is te groot. Hij mag niet groter zijn dan <b>' .$MaxFotoSize. '</b>';
}
if(@!getimagesize($_FILES['afbeelding']['tmp_name']))
{
$Bericht[] = 'Deze foto heeft geen breedte of hoogte';
}
break;
case UPLOAD_ERR_INI_SIZE:
$Bericht[] = 'De foto is te groot.';
break;
case UPLOAD_ERR_PARTIAL:
$Bericht[] = 'Er is een fout opgetreden tijdens het uploaden';
break;
case UPLOAD_ERR_NO_FILE:
$Bericht[] = 'U heeft geen foto opgegeven om te uploaden';
break;
default:
$Bericht[] = 'Er is een onbekende fout opgetreden';
break;
} // Einde switch
if (empty($Bericht))
{
if (!in_array($Foto['type'], $FotoMIME ))
{
$Bericht[] = 'Deze extensie is niet toegestaan!';
}
// Extensie controleren
if(!in_array(strtolower(strrchr($_FILES['afbeelding']['name'], '.')), $FotoExt))
{
$Bericht[] = ' Deze foto extentie is niet toegestaan';
}
// Already excist check
if (file_exists($FotoNaam))
{
$Bericht[] = 'Er bestaat al een foto met deze naam!';
}
if (!move_uploaded_file ($Foto['tmp_name'] , $FotoNaam))
{
echo "Fout met de afbeelding. Kon deze niet toevoegen!";
}
list ($Breedte, $Hoogte, $ImageType) = getimagesize ($FotoNaam);
$ImageRatio = $Breedte / $Hoogte;
if ($ImageRatio > 1)
{
$TnBreedte = $ThumbSize;
$TnHoogte = $ThumbSize / $ImageRatio;
}
else
{
$TnHoogte = $ThumbSize;
$TnBreedte = $ThumbSize * $ImageRatio;
}
$Thumb = imagecreatetruecolor ($TnBreedte, $TnHoogte);
switch ($ImageType)
{
case IMAGETYPE_GIF:
$Source = imagecreatefromgif ($FotoNaam);
break;
case IMAGETYPE_JPEG:
$Source = imagecreatefromjpeg ($FotoNaam);
break;
case IMAGETYPE_PNG:
$Source = imagecreatefrompng ($FotoNaam);
break;
default:
$Source = imagecreatefromgif ($FotoNaam);
break;
}
imagecopyresampled ($Thumb, $Source, 0, 0, 0, 0, $TnBreedte, $TnHoogte, $Breedte, $Hoogte);
// Naam thumb
$Thumbname = $UploadMap . './thumbnails/' . 'tn_' . $_FILES['afbeelding']['name'];
switch ($ImageType)
{
case IMAGETYPE_GIF:
imagegif ($Thumb, $Thumbname);
break;
case IMAGETYPE_JPEG:
imagejpeg ($Thumb, $Thumbname, 100);
break;
case IMAGETYPE_PNG:
imagepng ($Thumb, $Thumbname);
break;
}
$Bericht[] = 'Uw foto is succesvol opgeslagen in het fotoalbum!';
}
}
//Sluiten van file submit
}
//Else afsluiten voor veldcontrole
?>
Even een bump. Probleem is nog niet helemaal opgelost. Echter weet ik wel dat mijn afbeelding in de root van mn webserver komt te staan, en dus geen locatie meekrijgt waar hij moet komen.
Groeten Donny
Als je dit veranderd moet je dat ook meteen in je checks doen... Ander check je of er een afbeelding al is in een verkeerde map.
Dit kun je zelf ook uitzoeken door te kijken welke variabelen er nu meegegeven worden en welke niet. Slechts een kwestie van goed kijken...
Milo dat snap ik. Ik snap alleen niet hoe het kan als ik precies dezelfde pagina in precies dezelfde CMS plaatst hij het niet doet... Dat vond ik gwn erg raar...