Meerdere thumbs tegelijk maken bij uploaden image
Ik ben bezig met een script waar , gelijk bij het uploaden, 3 thumbnails gemaakt worden. kan ik natuurlijk een het script 3 keer aanroepen op 1 pagina en daarin de verschillende breedtes, hoogtes en mapnaam in opgeven. Maar ik wou eigelijk dat zoiets met een for-lus (of iets dergelijks) kon gebeuren. Hieronder staat de code wat ik geprobeerd heb.
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
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
<?php
if(isset($_POST['submit']) && isset($_POST[afbeeldingen]))
{
$filename = $_FILES['afbeeldingen']['name'];
$tmp_name = $_FILES['afbeeldingen']['tmp_name'];
$map_naam[0] = "klein";
$map_naam[1] = "middel";
$map_naam[2] = "groot";
$image_breedte[0] = "100";
$image_breedte[1] = "250";
$image_breedte[2] = "500";
for($i=0;$i<3;$i++){
if(!empty($filename)) {
if(is_uploaded_file($tmp_name))
{
if(move_uploaded_file($tmp_name,'uploads/'.$filename)) {
$sFile = 'uploads/'.$filename;
$sFile2 = 'uploads/'.$map_naam[$i].'/';
chmod($sFile2,0777);
list($width, $height) = getimagesize($sFile);
$newwidth = $image_breedte[$i];
$newheight = ($height/$width) *$newwidth;
$sExt = explode('.',$filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($sExt[1]) {
case 'gif':
$source = imagecreatefromgif($sFile);
$error = false;
break;
case 'jpg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'jpeg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'png':
$source = imagecreatefrompng($sFile);
$error = false;
break;
default:
$error = true;
}
if(!$error) {
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch($sExt[1]) {
case 'gif':
imagegif($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'jpg':
imagejpeg($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'jpeg':
imagejpeg($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'png':
imagepng($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
}
echo '<img src="uploads/'.$map_naam[$i].'/'.$filename.'" alt="'.$filename.'" /><br />';
}
}
}
}
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="afbeeldingen" /><br />
<input type="submit" name="submit" value="Verstuur!" />
<?php
}
?>
if(isset($_POST['submit']) && isset($_POST[afbeeldingen]))
{
$filename = $_FILES['afbeeldingen']['name'];
$tmp_name = $_FILES['afbeeldingen']['tmp_name'];
$map_naam[0] = "klein";
$map_naam[1] = "middel";
$map_naam[2] = "groot";
$image_breedte[0] = "100";
$image_breedte[1] = "250";
$image_breedte[2] = "500";
for($i=0;$i<3;$i++){
if(!empty($filename)) {
if(is_uploaded_file($tmp_name))
{
if(move_uploaded_file($tmp_name,'uploads/'.$filename)) {
$sFile = 'uploads/'.$filename;
$sFile2 = 'uploads/'.$map_naam[$i].'/';
chmod($sFile2,0777);
list($width, $height) = getimagesize($sFile);
$newwidth = $image_breedte[$i];
$newheight = ($height/$width) *$newwidth;
$sExt = explode('.',$filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($sExt[1]) {
case 'gif':
$source = imagecreatefromgif($sFile);
$error = false;
break;
case 'jpg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'jpeg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'png':
$source = imagecreatefrompng($sFile);
$error = false;
break;
default:
$error = true;
}
if(!$error) {
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch($sExt[1]) {
case 'gif':
imagegif($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'jpg':
imagejpeg($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'jpeg':
imagejpeg($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
case 'png':
imagepng($thumb, 'uploads/'.$map_naam[$i].'/'.$filename.'',100);
break;
}
echo '<img src="uploads/'.$map_naam[$i].'/'.$filename.'" alt="'.$filename.'" /><br />';
}
}
}
}
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="afbeeldingen" /><br />
<input type="submit" name="submit" value="Verstuur!" />
<?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
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
<?php
switch($i)
{
case 0:
$newwidth = 50;
$newheight = 50;
break;
case 1:
$newwidth = 100;
$newheight = 100;
break;
default:
$newwidth = 150;
$newheight = 150;
}
[/code]
[b]Edit[/b]
Een veel kortere manier, met Ternary Operator:
[code][code]<?php
$newwidth = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
$newheight = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
[/code]
0 = 50
1 = 100
? = 150
Wat doet het? Hier in een if/else statement:
[code]
[code]<?php
if($i == 0)
{
$newwidth = 50;
}
else
{
if($i == 1)
{
$newwidth = 100;
}
else
{
$newwidth = 150;
}
}
[/code]
En dus NIET dit:
[code][code]<?php
if($i == 0)
{
$newwidth = 50;
}
elseif($i == 1)
{
$newwidth = 100;
}
else
{
$newwidth = 150;
}
[/code]
Ook al is het resultaat hetzelfde ;)
Maar iig, ik zou voor de Ternary Operator gaan :), kort en vooral krachtig
[b]Edit again[/b]
Wat OOK kan, is een functie maken met de functionaliteit van het thumbnailen :)
En als parameters de breedte en hoogte mee geven etc. Dan heb je een for-loop die die functie herhaalt.
Maar dan verplaats je de code eigenlijk alleen, het is een optie.
switch($i)
{
case 0:
$newwidth = 50;
$newheight = 50;
break;
case 1:
$newwidth = 100;
$newheight = 100;
break;
default:
$newwidth = 150;
$newheight = 150;
}
[/code]
[b]Edit[/b]
Een veel kortere manier, met Ternary Operator:
[code][code]<?php
$newwidth = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
$newheight = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
[/code]
0 = 50
1 = 100
? = 150
Wat doet het? Hier in een if/else statement:
[code]
[code]<?php
if($i == 0)
{
$newwidth = 50;
}
else
{
if($i == 1)
{
$newwidth = 100;
}
else
{
$newwidth = 150;
}
}
[/code]
En dus NIET dit:
[code][code]<?php
if($i == 0)
{
$newwidth = 50;
}
elseif($i == 1)
{
$newwidth = 100;
}
else
{
$newwidth = 150;
}
[/code]
Ook al is het resultaat hetzelfde ;)
Maar iig, ik zou voor de Ternary Operator gaan :), kort en vooral krachtig
[b]Edit again[/b]
Wat OOK kan, is een functie maken met de functionaliteit van het thumbnailen :)
En als parameters de breedte en hoogte mee geven etc. Dan heb je een for-loop die die functie herhaalt.
Maar dan verplaats je de code eigenlijk alleen, het is een optie.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
Het systeempje werkt alleen nog niet. Hij heeft het één keer gedaan. Ik weet niet meer wat ik toen veranderd heb zodat hij het nu niet meer doet.
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
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
<?php
error_reporting(E_ALL);
ob_start();
if(isset($_POST['submit']))
{
$filename = $_FILES['afbeeldingen']['name'];
$tmp_name = $_FILES['afbeeldingen']['tmp_name'];
for($i=0;$i<3;$i++){
if(!empty($filename)) {
if(is_uploaded_file($_FILES['afbeeldingen']['tmp_name']))
{
$mapnaam = $i == 0 ? 'klein' : ($i == 1 ? 'middel' : 'groot');
if(move_uploaded_file($tmp_name,'./uploads/'.$mapnaam.'/'.$filename)) {
$sFile = 'uploads/'.$mapnaam.'/'.$filename;
$sFile2 = 'uploads/'.$mapnaam.'';
list($width, $height) = getimagesize($sFile);
$newwidth = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
$newheight = ($height/$width) * $newwidth;
$sExt = explode('.',$filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($sExt[1]) {
case 'gif':
$source = imagecreatefromgif($sFile);
$error = false;
break;
case 'jpg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'jpeg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'png':
$source = imagecreatefrompng($sFile);
$error = false;
break;
default: true;
}
if(!$error) {
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch($sExt[1]) {
case 'gif':
imagegif($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'jpg':
imagejpeg($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'jpeg':
imagejpeg($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'png':
imagepng($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
}
echo '<img src="uploads/'.$mapnaam.'/'.$filename.'" alt="'.$filename.'" /><br />';
}else{
echo 'Errors gesignaleerd!';
}
}
}
}
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="afbeeldingen" /><br />
<input type="submit" name="submit" value="Verstuur!" />
<?php
}
?>
error_reporting(E_ALL);
ob_start();
if(isset($_POST['submit']))
{
$filename = $_FILES['afbeeldingen']['name'];
$tmp_name = $_FILES['afbeeldingen']['tmp_name'];
for($i=0;$i<3;$i++){
if(!empty($filename)) {
if(is_uploaded_file($_FILES['afbeeldingen']['tmp_name']))
{
$mapnaam = $i == 0 ? 'klein' : ($i == 1 ? 'middel' : 'groot');
if(move_uploaded_file($tmp_name,'./uploads/'.$mapnaam.'/'.$filename)) {
$sFile = 'uploads/'.$mapnaam.'/'.$filename;
$sFile2 = 'uploads/'.$mapnaam.'';
list($width, $height) = getimagesize($sFile);
$newwidth = $i == 0 ? 50 : ($i == 1 ? 100 : 150);
$newheight = ($height/$width) * $newwidth;
$sExt = explode('.',$filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($sExt[1]) {
case 'gif':
$source = imagecreatefromgif($sFile);
$error = false;
break;
case 'jpg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'jpeg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'png':
$source = imagecreatefrompng($sFile);
$error = false;
break;
default: true;
}
if(!$error) {
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch($sExt[1]) {
case 'gif':
imagegif($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'jpg':
imagejpeg($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'jpeg':
imagejpeg($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
case 'png':
imagepng($thumb, 'uploads/'.$mapnaam.'/'.$filename,100);
break;
}
echo '<img src="uploads/'.$mapnaam.'/'.$filename.'" alt="'.$filename.'" /><br />';
}else{
echo 'Errors gesignaleerd!';
}
}
}
}
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="afbeeldingen" /><br />
<input type="submit" name="submit" value="Verstuur!" />
<?php
}
?>