Afbeelding uploaden !!
User 1 upload bestand dan veranderd ik.jpg naar HHS000001.jpg
User 2 upload bestand dan veranderd ik2.jpg naar HHS000002.jpg
en zo maar bij tellen. hier onder staat de script die ik gebruik voor het uploaden.
Quote:
//avatar.php
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
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
<?php
if (isset($_POST['kkupload'])) {
$filename = $_FILES['foto']['name'];
$extensie = substr($filename, -3);
$map = "images/leden/";
$file = $_FILES['foto'];
$breedte = $_FILES['foto'];
$max_bytes = 2000000;
if(strtolower($extensie) != "gif" && strtolower($extensie) != "jpg" && strtolower($extensie) != "jpeg" && strtolower($extensie) != "png")
{
echo "Je kan alleen .gif, .jpg .jpeg en .png bestanden uploaden!";
}
elseif($_FILES['foto']['size'] > $max_bytes) { echo("Het bestand is groter dan ".$max_bytes." bytes!"); }
else {
$length = strlen($filename);
$name = "pict";
$name = substr($filename, 0, $length - 4);
$i = "1";
$tempname = $name;
$picName = $_FILES['foto']['name'];
$nr = rand(11111,99999999999);
if(file_exists($_FILES['foto']['name']))
{
$picName = $nr. $_FILES['foto']['name'];
if(file_exists($picName))
{
$picName = $nr. $_FILES['foto']['name'];
}
}
move_uploaded_file($_FILES['foto']['tmp_name'], $map.$picName."") or die("Fout met uploaden plaatje");
require_once 'includes/image.php';
$image = new Image($map.$picName);
$image->resizeAndSave(250, 200, $map.'250'.$picName);
$image = new Image($map.$picName);
$image->resizeAndSave(65, 65, $map.'65'.$picName);
$image = new Image($map.$picName);
$image->resizeAndSave(85, 85, $map.'85'.$picName);
mysql_query("UPDATE `leden` SET `img`='".$picName."' WHERE `gebruikersnaam`='".$_SESSION['uName']."'");
echo "Avatar is succesvol geupload!";
}
}
?>
if (isset($_POST['kkupload'])) {
$filename = $_FILES['foto']['name'];
$extensie = substr($filename, -3);
$map = "images/leden/";
$file = $_FILES['foto'];
$breedte = $_FILES['foto'];
$max_bytes = 2000000;
if(strtolower($extensie) != "gif" && strtolower($extensie) != "jpg" && strtolower($extensie) != "jpeg" && strtolower($extensie) != "png")
{
echo "Je kan alleen .gif, .jpg .jpeg en .png bestanden uploaden!";
}
elseif($_FILES['foto']['size'] > $max_bytes) { echo("Het bestand is groter dan ".$max_bytes." bytes!"); }
else {
$length = strlen($filename);
$name = "pict";
$name = substr($filename, 0, $length - 4);
$i = "1";
$tempname = $name;
$picName = $_FILES['foto']['name'];
$nr = rand(11111,99999999999);
if(file_exists($_FILES['foto']['name']))
{
$picName = $nr. $_FILES['foto']['name'];
if(file_exists($picName))
{
$picName = $nr. $_FILES['foto']['name'];
}
}
move_uploaded_file($_FILES['foto']['tmp_name'], $map.$picName."") or die("Fout met uploaden plaatje");
require_once 'includes/image.php';
$image = new Image($map.$picName);
$image->resizeAndSave(250, 200, $map.'250'.$picName);
$image = new Image($map.$picName);
$image->resizeAndSave(65, 65, $map.'65'.$picName);
$image = new Image($map.$picName);
$image->resizeAndSave(85, 85, $map.'85'.$picName);
mysql_query("UPDATE `leden` SET `img`='".$picName."' WHERE `gebruikersnaam`='".$_SESSION['uName']."'");
echo "Avatar is succesvol geupload!";
}
}
?>
Quote:
// images.php
// images.php
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
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
<?php
class Image {
// The image source
private $imageSource;
/**
* Image::__construct()
*
* @param mixed $imageSource
* @return
*/
public function __construct($imageSource) {
$this->imageSource = $imageSource;
}
/**
* Image::resizeAndSave()
*
* @param mixed $maxWidth
* @param mixed $maxHeight
* @return
*/
public function resizeAndSave($maxWidth, $maxHeight, $destination) {
// Fetch width and height from image
list($width, $height) = getimagesize($this->imageSource);
// Fetch image extention
$imageExtention = explode('.', $this->imageSource);
$imageExtention = strtolower(end($imageExtention));
// Check width and heigt
if ($width <= $maxWidth && $height <= $maxHeight) {
// Copy image and done..
copy($this->imageSource, $destination);
return true;
}
// Max width exceeded?
if ($width > $maxWidth) {
$widthRatio = ($width - $maxWidth) / $width;
$newWidth = $maxWidth;
$newHeight = $height - ($height * $widthRatio);
}
// Max height exceeded?
if ($newHeight > $maxHeight) {
$heightRatio = ($newHeight - $maxHeight) / $newHeight;
$newHeight = $maxHeight;
$newWidth = $newWidth - ($newWidth * $heightRatio);
}
// Create new image
$imageDestination = imagecreatetruecolor($newWidth, $newHeight);
// Check extention
if ($imageExtention == 'jpg' || $imageExtention == 'jpeg') {
// Create new JPG image
$newImage = imagecreatefromjpeg($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagejpeg($imageDestination, $destination, 100);
} elseif ($imageExtention == 'gif') {
// Create new GIF image
$newImage = imagecreatefromgif($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagegif($imageDestination, $destination);
} elseif ($imageExtention == 'png') {
// Create new PNG iamge
$newImage = imagecreatefrompng($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagepng($imageDestination, $destination, 9);
}
}
}[/quote]
class Image {
// The image source
private $imageSource;
/**
* Image::__construct()
*
* @param mixed $imageSource
* @return
*/
public function __construct($imageSource) {
$this->imageSource = $imageSource;
}
/**
* Image::resizeAndSave()
*
* @param mixed $maxWidth
* @param mixed $maxHeight
* @return
*/
public function resizeAndSave($maxWidth, $maxHeight, $destination) {
// Fetch width and height from image
list($width, $height) = getimagesize($this->imageSource);
// Fetch image extention
$imageExtention = explode('.', $this->imageSource);
$imageExtention = strtolower(end($imageExtention));
// Check width and heigt
if ($width <= $maxWidth && $height <= $maxHeight) {
// Copy image and done..
copy($this->imageSource, $destination);
return true;
}
// Max width exceeded?
if ($width > $maxWidth) {
$widthRatio = ($width - $maxWidth) / $width;
$newWidth = $maxWidth;
$newHeight = $height - ($height * $widthRatio);
}
// Max height exceeded?
if ($newHeight > $maxHeight) {
$heightRatio = ($newHeight - $maxHeight) / $newHeight;
$newHeight = $maxHeight;
$newWidth = $newWidth - ($newWidth * $heightRatio);
}
// Create new image
$imageDestination = imagecreatetruecolor($newWidth, $newHeight);
// Check extention
if ($imageExtention == 'jpg' || $imageExtention == 'jpeg') {
// Create new JPG image
$newImage = imagecreatefromjpeg($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagejpeg($imageDestination, $destination, 100);
} elseif ($imageExtention == 'gif') {
// Create new GIF image
$newImage = imagecreatefromgif($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagegif($imageDestination, $destination);
} elseif ($imageExtention == 'png') {
// Create new PNG iamge
$newImage = imagecreatefrompng($this->imageSource);
imagecopyresampled($imageDestination, $newImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
// Save image
imagepng($imageDestination, $destination, 9);
}
}
}[/quote]
@userid@ word vervangen voor het gebruikers id
Gelukkig is dit een veilig systeem. Probeer maar eens test.php.jpg te uploaden! :-)
@Roel: dan is er nog niets aan de hand, want de afbeelding is nog steeds een .jpg, dat er .php inzit maakt niets uit. Het wordt een ander verhaal wanneer de afbeelding blaat.jpg.php zou heten, maar dat kan in dit geval niet.
Maar dit is allemaal offtopic, graag reacties op de vraag van de ts.
Controleren op extensie of MIME is beide lek op een mandje,
OT:
$picname veranderen in 'watdanook_' . $user_id zou prima werken, wil je dat een user meerdere afbeeldingen kan uploaden kan je er 'watdanook_' . $user_id . '_' . $num van maken
$num zou je krijgen door te tellen hoeveel bestanden er met 'watdanook_' . $user_id . '_' beginnen. Doet 'glob()' daar geen hele mooie dingen mee?
Johan Dam op 24/02/2011 09:36:32:
controleer de afbeeldingen met 'imagegetsize()' als het geen afbeelding is, geeft ie false terug, maakt niet wat de extensie / mime type is.
Controleren op extensie of MIME is beide lek op een mandje,
OT:
$picname veranderen in 'watdanook_' . $user_id zou prima werken, wil je dat een user meerdere afbeeldingen kan uploaden kan je er 'watdanook_' . $user_id . '_' . $num van maken
$num zou je krijgen door te tellen hoeveel bestanden er met 'watdanook_' . $user_id . '_' beginnen. Doet 'glob()' daar geen hele mooie dingen mee?
Controleren op extensie of MIME is beide lek op een mandje,
OT:
$picname veranderen in 'watdanook_' . $user_id zou prima werken, wil je dat een user meerdere afbeeldingen kan uploaden kan je er 'watdanook_' . $user_id . '_' . $num van maken
$num zou je krijgen door te tellen hoeveel bestanden er met 'watdanook_' . $user_id . '_' beginnen. Doet 'glob()' daar geen hele mooie dingen mee?
ik begrijp het niet helemaal :(
Kan je mis wat duidelijker zijn ? THNXXX @!