Ik heb problemen met het uploaden van een foto en die foto vervolgens in een database te plaatsen.
het script:
De error
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 11328 bytes) in /home/www/web2/web/sites/setup/photo.php on line 40
Ik heb de standaard memory_size van 8 MB naar 16 Mb verandert. Schijnt dat 16 MB nu ook niet genoeg is. De foto is maar 500 KB
Hoe kan ik dit probleem anders oplossen?
Nico
het script:
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
| <? $maxX = "250"; $maxY = "250"; $imgsize = getimagesize($_FILES['pic']['tmp_name']); switch($imgsize[2]) { case 1: # GIF image $timg = imageCreateFromGIF($_FILES['pic']['tmp_name']); $type = "gif"; break; case 2: # JPEG image $timg = imageCreateFromJPEG($_FILES['pic']['tmp_name']); //Regel 40 $type = "jpg"; break; case 3: # PNG image $timg = imageCreateFromPNG($_FILES['pic']['tmp_name']); $type = "png"; break; } $imgsize = getimagesize($_FILES['pic']['tmp_name']); $imgX = $imgsize[0]; $imgY = $imgsize[1]; // Zoomfactor Berekenen $_X = $imgX/$maxX * 100; $_Y = $imgY/$maxY * 100; // Zoomfactor selecteren if((100-$_X) < (100-$_Y)) { $_K = $_X; } else { $_K = $_Y; } // Nieuwe grootte berekenen $newX = floor($imgX/$_K * 100); $newY = floor($imgY/$_K * 100); //Nieuw plaatje maken $imgh = imageCreateTrueColor($newX, $newY); imagecopyresized($imgh, $timg, 0,0,0,0,$newX,$newY,$imgX,$imgY); $copyright = imagecreatefromjpeg("images/copyright.jpg"); $white = imagecolorallocate($copyright, 255, 255, 255); imagecolortransparent($copyright,$white); //imagecopy($imgh,$copyright,0,0,0,0,$newX,$newY); ImageJPEG($imgh, "temp/temp1.jpg"); $file = "temp/temp1.jpg"; $fullfile = fread(fopen($file,"r"),filesize($file)); $coded = chunk_split(base64_encode($fullfile)); $query = mysql_query("SELECT id FROM user_photo WHERE id_user ='".$_USER['id']."'"); if (mysql_num_rows($query)) { mysql_query("UPDATE user_photo SET photo='".$coded."',date='".$_SET['dateu']."' WHERE id_user='".$_USER['id']."'"); } else { mysql_query("INSERT INTO user_photo (id_user,date,photo) VALUES('".$_USER['id']."','".$_SET['dateu']."','".$coded."')"); } echo("De foto is succesvol geplaatst!"); ?> |
De error
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 11328 bytes) in /home/www/web2/web/sites/setup/photo.php on line 40
Ik heb de standaard memory_size van 8 MB naar 16 Mb verandert. Schijnt dat 16 MB nu ook niet genoeg is. De foto is maar 500 KB
Hoe kan ik dit probleem anders oplossen?
Nico