[php] Vollopen van memory

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 19:14

JorisPenders

Designer & Coder

Topicstarter
Beste Tweakers,

Ik zit met het volgende probleem:

Ik heb een script voor een CMS dat een bestand upload en vervolgens dit in twee formaten via GD verkleind en het originele bestand verwijderd.

Bij TransIP krijg ik steeds de volgende foutmelding:
code:
1
Fatal error: Allowed memory size of 10485760 bytes exhausted (tried to allocate 11264 bytes) in /sites/grondwerkenwaterbouw.nl/www/nieuw/fotoboek_functions.php on line 9


Op regel 9 staat:
code:
1
$photo = imagecreatefromjpeg($bestandsnaam);


Niets aparts naar mijn weten, toch blijft hij hier vastlopen.

Om mijn post wat kracht bij te zetten voeg ik even de relevante code toe:
code:
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
<?
function resizeimage($bestandsnaam, $grootte, $suffix) {
ini_set("memory_limit","15M");
echo "tweede ronde...";
    // De hoogte en breedte ophalen van het plaatje
    $path = "";
    $bestandsnaam = $path . $bestandsnaam;
    $photo = imagecreatefromjpeg($bestandsnaam);

    $photo_dimensions_width = imagesx ($photo); 
    $photo_dimensions_height = imagesy ($photo); 
    
    // Berekenen breedte/hoogte:
    
    if ($photo_dimensions_width > $grootte OR $photo_dimensoons_height > $grootte) { 
        if ($photo_dimensions_width == $photo_dimensions_height) { 
            $thumb_dimensions_width = $grootte; 
            $thumb_dimensions_height = $grootte; 
            } 
    
    elseif ($photo_dimensions_width > $photo_dimensions_height) { 
        $value = $photo_dimensions_width / $grootte; 
        $thumb_dimensions_width = $grootte; 
        $thumb_dimensions_height = round ($photo_dimensions_height / $value); 
    } 

    else { 
        $value = $photo_dimensions_height / $grootte; 
        $thumb_dimensions_height = $grootte; 
        $thumb_dimensions_width = round ($photo_dimensions_width / $value); 
        } 
    } 

    else { 
        $thumb_dimensions_width = $photo_dimensions_width; 
        $thumb_dimensions_height = $photo_dimensions_height; 
        } 
           
    
    //Het plaatje inlezen in de variabele $photo+
    
    $create_thumb = imagecreatetruecolor ($thumb_dimensions_width, $thumb_dimensions_height); 
    imagecopyresampled ($create_thumb, $photo, 0, 0, 0, 0, $thumb_dimensions_width, $thumb_dimensions_height, $photo_dimensions_width, $photo_dimensions_height); 
    ImageJpeg($create_thumb,$bestandsnaam.$suffix,90); 
    Imagedestroy($photo); 
    Imagedestroy($create_thumb);
    unset($photo, $create_thumb);
}
?>


Deze functie wordt twee maal in hetzelfde script opgeroepen. Bij de tweede keer gaat het fout.
code:
1
2
resizeimage($bronvanhetbestand, "100", "_klein.jpg"); 
resizeimage($bronvanhetbestand, "500", "_normal.jpg");


Zorg ik ervoor dat iets niet goed gedestroyed wordt? Of is er iets anders aan de haak?
Graag jullie reacties :)

SystemSpecs -- WebArea - Your Online Home -- Webdesign


Acties:
  • 0 Henk 'm!

Verwijderd

mem_limit verhogen? 10mb is ook niet al te veel...

Acties:
  • 0 Henk 'm!

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 19:14

JorisPenders

Designer & Coder

Topicstarter
Ook al zet ik bovenaan de pagina
code:
1
ini_set("memory_limit","100M");

Het wil niet helpen en de foutmelding blijft hetzelfde...

SystemSpecs -- WebArea - Your Online Home -- Webdesign


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
DJ_Jorizzz schreef op dinsdag 13 februari 2007 @ 23:53:
Ook al zet ik bovenaan de pagina
code:
1
ini_set("memory_limit","100M");

Het wil niet helpen en de foutmelding blijft hetzelfde...
Ik gok dat je die setting niet middels ini_set kunt wijzigen.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017

RSD

Moet je safe_mode off zetten of je hoster vragen om de boel op te hogen. bewerkingen met plaatjes kosten nu eenmaal veel geheugen, vooral als je bewerkingen gaat uitvoeren.