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

<?
//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);

}
?>
Heb je wel PHP gecompileerd met GD-1.8 of hoger?? Post eens een gedeelte van je error log...
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
File does not exist
Allowed memory size of 50331648 bytes exhausted

Lijkt mij overduidelijk.
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
Ik roep de functie alsvolgd aan:

<?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);
?>
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
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?
Marvin Jep,

Onder een mb doen het gewoon.

Vreemd he?
neej is niet vreemd, dit heeft dan niks met het script te maken maar met je PHP settings

[size=xsmall]Toevoeging op 19/09/2012 14:17:42:[/size]

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

<?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...
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.



[size=xsmall]Toevoeging op 19/09/2012 15:09:19:[/size]

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?

Reageren