imagecreatefromjpeg() werkt niet PHP Version 5.2.16

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michiel v

michiel v

19/09/2012 12:16:30
Quote Anchor link
Mijn onderstaande script werkt niet op nieuwe server. Volgend log moet het liggen aan: imagecreatefromjpeg()

Iemand een idee wat er mis gaat. Bestanden tot 1 mb doen het overigens wel.


groeten,

Michiel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
//Resize picture
function resize_picture ($remote_file, $image_source ) {    

        // some settings
        $max_upload_width = 600;

        $max_upload_height = 600;
        
        
        imagejpeg($image_source,$remote_file,100);
        chmod($remote_file,0644);
    
    
        /******* GROOT FORMAAT AANPASSEN *******/    
        // get width and height of original image

        list($image_width, $image_height) = getimagesize($remote_file);
    
        if($image_width>$max_upload_width || $image_height >$max_upload_height){
            $proportions = $image_width/$image_height;
            
            if($image_width>$image_height){
                $new_width = $max_upload_width;
                $new_height = round($max_upload_width/$proportions);
            }
        
            else{
                $new_height = $max_upload_height;
                $new_width = round($max_upload_height*$proportions);
            }
        
            
            
            $new_image = imagecreatetruecolor($new_width , $new_height);
            $image_source = imagecreatefromjpeg($remote_file);
            
            imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
            
            // Save the image as 'simpletext.jpg'
            imagejpeg($new_image,$remote_file,100);
            
            // Free up memory
            imagedestroy($new_image);
            
            
        }

        /** END GROOT FORMAAT **/

        imagedestroy($image_source);

}

?>
 
PHP hulp

PHP hulp

25/11/2024 17:05:24
 
Marvin H

Marvin H

19/09/2012 13:16:53
Quote Anchor link
Heb je wel PHP gecompileerd met GD-1.8 of hoger?? Post eens een gedeelte van je error log...
Gewijzigd op 19/09/2012 13:17:25 door Marvin H
 
Michiel v

michiel v

19/09/2012 13:23:59
Quote Anchor link
Hoi Marvin,

Bedankt voor je reactie!

Zie onderstaand:

http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/errors, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/verse-vis, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:28 2012] [error] [client 217.122.227.177] File does not exist: /sites/tonijn.nl/www/errors, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
[Wed Sep 19 09:26:50 2012] [error] [client 217.122.227.177] PHP Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 11264 bytes) in /sites/tonijn.nl/www/useradmin/dbc.php on line 618, referer: http://tonijn.nl.webhosting10.server.nl/verse-vis/display-product
 
- SanThe -

- SanThe -

19/09/2012 13:31:04
Quote Anchor link
File does not exist
Allowed memory size of 50331648 bytes exhausted

Lijkt mij overduidelijk.
 
Marvin H

Marvin H

19/09/2012 13:36:31
Quote Anchor link
Uit de logs die je post zie ik alleen dat er een verwijzing naar een bestand plaatsvind die niet bestaat... en verder wat issues met "Allowed memory size"...

Hoe roep jij de function aan, geef eens een voorbeeld
 
Michiel v

michiel v

19/09/2012 13:54:37
Quote Anchor link
Ik roep de functie alsvolgd aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

        // if uploaded image was JPG/JPEG
        if($_FILES["image_upload_box1"]["type"] == "image/jpeg" || $_FILES["image_upload_box1"]["type"] == "image/pjpeg"){    
            $image_source = imagecreatefromjpeg($_FILES["image_upload_box1"]["tmp_name"]);
        }
        
        // if uploaded image was GIF
        if($_FILES["image_upload_box1"]["type"] == "image/gif"){    
            $image_source = imagecreatefromgif($_FILES["image_upload_box1"]["tmp_name"]);
        }
    
        // BMP doesn't seem to be supported so remove it form above image type test (reject bmps)    
        // if uploaded image was BMP

        if($_FILES["image_upload_box1"]["type"] == "image/bmp"){    
            $image_source = imagecreatefromwbmp($_FILES["image_upload_box1"]["tmp_name"]);
        }
            
        // if uploaded image was PNG
        if($_FILES["image_upload_box1"]["type"] == "image/x-png"){
            $image_source = imagecreatefrompng($_FILES["image_upload_box1"]["tmp_name"]);
        }

        
            //uniekie code genereren
            $code = rand(0,1000);
            $_SESSION['code'] = $code;
            
            $remote_fileRUF = "image_files/$partij-$code-".$_FILES["image_upload_box1"]["name"];
            $remote_file  = str_replace(" ","-",$remote_fileRUF); //wiruimte verwijderen

                //Door functie halen

                resize_picture ($remote_file, $image_source);
?>
 
Albert de Wit

Albert de Wit

19/09/2012 13:58:28
Quote Anchor link
Uhm, als je een GIF upload, hoe maak je die dan aan in PHP? Toen ik een image_uploader maakte kon ik geen GIF's maken omdat ik alleen createimagefromjpeg gebruikte
 
Marvin H

Marvin H

19/09/2012 14:06:29
Quote Anchor link
Iets over het hoofd gezien, je zegt in je eerste post "
Iemand een idee wat er mis gaat. Bestanden tot 1 mb doen het overigens wel."

Dus images van onder de 1mb doen het altijd?
 
Michiel v

michiel v

19/09/2012 14:11:28
Quote Anchor link
Marvin Jep,

Onder een mb doen het gewoon.

Vreemd he?
 
Marvin H

Marvin H

19/09/2012 14:14:52
Quote Anchor link
neej is niet vreemd, dit heeft dan niks met het script te maken maar met je PHP settings

Toevoeging op 19/09/2012 14:17:42:

Zoals -SanThe- en ik al eerder opmerkte in je log is de Allowed memory exhausted melding in je log... Plaats hetvolgende eens boven aan in je script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
ini_set("memory_limit","12M");
?>



Dit zorgt ervoor dat je php script in plaats van 5mb nu 12 mb geheugen heeft om de opdracht uit te voeren...
Gewijzigd op 19/09/2012 14:18:31 door Marvin H
 
Michiel v

michiel v

19/09/2012 15:07:01
Quote Anchor link
hoi marvin,

Dan werkt het nog niet.

Denk dat ik maar moet overstappen op VPS want het hosting bedrijf meld het volgende:

Wat denk jij?


Waarom krijg ik de fout 'Allowed memory size exhausted' op mijn website?
Deze fout krijgt u als de server te veel geheugen nodig heeft om uw webpagina te genereren. Omdat uw website op een gedeelde server draait, kunnen wij per bezoeker/webpagina slechts een beperkte hoeveelheid geheugen toewijzen. Als uw pagina te veel geheugen nodig heeft dan zal deze worden afgebroken.

Deze error komt vaak voor bij scripts die realtime 'thumbnails' genereren. Dit kan bijna altijd worden opgelost door een zuiniger script te gebruiken, of door een lagere resolutie foto te uploaden.

Ook programma's zoals Wordpress geven vaak deze fout. Dan gaat het meestal om websites waar teveel plug-ins of modules geladen zijn. Bekende veelgebruikers zijn 'Google XML Sitemap' en 'Ultimate Tag Warrior'. In deze gevallen kunt u het beste deze plugins compleet verwijderen, samen met alle andere niet gebruikte overbodige plug-ins.

Deze error heeft niets te maken met de quota op uw website.



Toevoeging op 19/09/2012 15:09:19:

De pagina waar het script op draait is 231kb is toch niet extreem veel?

Waar vindt ik dan een zuinig upload script. Zo slecht ziet mijn script er toch niet uit?
 
Marvin H

Marvin H

19/09/2012 15:11:11
Quote Anchor link
Dan vind ik de toewijzing van 5mb memory wel heel laag per sessie... Dan zit er niks anders op dan gebruik te maken van een andere hosting... check transip.nl eens voor VPS... die hebben leuke servers voor weinig geld (10,- per maand). Echter moet je wel zelf de server installeren... (kan ik je bij helpen indien nodig tegen vergoeding)

Toevoeging op 19/09/2012 15:13:11:

Michiel v op 19/09/2012 15:07:01:

De pagina waar het script op draait is 231kb is toch niet extreem veel?

Waar vindt ik dan een zuinig upload script. Zo slecht ziet mijn script er toch niet uit?


Het gaat niet om het script zelf, maar hetgeen wat het script uitvoert. Het resize van een image en aanmaken hiervan neemt wel resources in beslag... dan kom je al snel op je 5mb memory usage die php in beslag neemt
 
Michiel v

michiel v

19/09/2012 15:23:04
Quote Anchor link
Ok Marvin,

Bedankt voor je reacties. Ik ga een kijken bij Transip.

Ken het bedrijf wel.

ALs ik hulp nodig heb laat ik het je weten.

Groeten,

Michiel
 
Marvin H

Marvin H

19/09/2012 15:26:24
Quote Anchor link
Is goed :) Heb zelf ook een VPS bij TransIP i.c.m. DirectAdmin en met 2 cores/ 1Gb ram / 100GB HD / 2000GB dataverkeer
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.