Ik heb ooit eens een script gemaakt om files te uploaden en te resizen. Nu werkt dat niet bij alle foto's. Ik krijg dan niet altijd de waarde 2 bij onderstaande functie (size is ook 0):
$type = getimagesize($dest);
if($type[2] == 2){
Ik kreeg ineens het vermoeden dat dat misschien iets te maken heeft met bestandsgrootte. Kleine bestanden (onder de 2 MB) gaan zonder problemen. Zit er een beperking aan de bestandsgrootte bij de funcites die ik in onderstaand script gebruik?
Bedankt!
Gr,
Robert
<?php
function create_new_JPGimage ($dest,$source,$picture,$DB_pathname,$oldfiles)
{
//Het geselecteerde bestand wordt weggeschreven. Als het oude bestand hetzelfde bestand hadm dan is deze inmiddels verwijderd, dus mag geen problemen geven bij deze functie.
move_uploaded_file($source,$dest);
global $type;
$type = getimagesize($dest);
if($type[2] == 2){
//Voor de foto wordt een jpg-image aangemaakt. (imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename. )
$photo = imagecreatefromjpeg ($dest);
global $photodetails;
$photodetails=$photo;
//afmetingen bepalen
$source_x = imagesx($photo);
$source_y = imagesy($photo);
$ratio = $source_x/$source_y;
//de verhoudingen van het logo worden opnieuw bepaald (breedte is 210)
if($source_x >= 750){
$target_x = 750;
$target_y = ceil(750/$ratio);
}else{
$target_x = $source_x;
$target_y = $source_y;
}
//nieuwe image maken en wegschrijven naar dir (imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size. )
$create_blank = imagecreatetruecolor ($target_x, $target_y);
//imagecopyresized() copies a rectangular portion of one image to another image.
ImageCopyResized($create_blank, $photo, 0, 0, 0, 0, $target_x, $target_y, $source_x, $source_y);
global $new_filename;
$new_filename = "logo" . $picture;
//imagejpeg() creates the JPEG file in filename from the image image. The image argument is the return from the imagecreatetruecolor() function.
ImageJpeg($create_blank,$DB_pathname . $new_filename,100);
//imagedestroy() frees any memory associated with image image. image is the image identifier returned by one of the image create functions, such as
Imagedestroy($photo);
if(unlink($dest)==0){
echo "<SCRIPT LANGUAGE=JavaScript>window.alert('Er is iets fout gegaan bij het verwijderen van de originele foto</SCRIPT>";
}
}
}
?>
1.000 views