PHP ver gevorderde |
|
Soms doet hij het wel,soms niet.
--foto.php--
<?php $bestandsnaam = "images/thumb/$obj->id.jpg";
if (file_exists($bestandsnaam)) {
echo "<img src=\"$bestandsnaam\" border=\"0\">";
} else {
$naam = "images/thumb/temp/$obj->id.jpg";
copy ($obj->url, $naam);
echo "<img src=\"thumb.php?fotobestand=$naam&pic=$obj->id\" border=\"0\" alt=\"\">";
unlink("images/thumb/temp/$obj->id.jpg");
} ?>
<?php $bestandsnaam = "images/thumb/$obj->id.jpg"; echo "<img src=\"$bestandsnaam\" border=\"0\">"; } else { $naam = "images/thumb/temp/$obj->id.jpg"; echo "<img src=\"thumb.php?fotobestand=$naam&pic=$obj->id\" border=\"0\" alt=\"\">"; unlink("images/thumb/temp/$obj->id.jpg"); } ?>
--thumb.php--
<?php
$pic = "$_GET[pic].jpg";
$dir = images;
$image_path = $_GET['fotobestand'];
//Afbeelding groote
define(MAX_WIDTH, 100);
define(MAX_HEIGHT, 90);
//plaatje laden
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = imagecreatefromjpeg($image_path);
}
else if ($ext == 'png') {
$img = imagecreatefrompng($image_path);
}
//Groote controleren
if ($img) {
# Get image size and scale ratio
$width = imagesx($img);
$height = imagesy($img);
$scale = min(MAX_WIDTH/$width, MAX_HEIGHT/$height);
//Als het plaatje te groot is, kleiner maken
if ($scale < 1) {
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
//Tijdelijk plaatje
$tmp_img = imagecreatetruecolor($new_width, $new_height);
//Oude plaatje weggooien en tijdelijk vast zetten
imagecopyresized($tmp_img, $img, 0, 0, 0, 0,
$new_width, $new_height, $width, $height);
imagedestroy($img);
$img = $tmp_img;
}
}
//plaatje opslaan
imagejpeg($img, $dir.'/thumb/'.$pic);
chmod($dir.'/thumb/'.$pic, 0777);
//Plaatje laten zien
header("Content-type: image/jpeg");
imagejpeg($img);
?>
<?php $pic = "$_GET[pic].jpg"; $dir = images; $image_path = $_GET['fotobestand']; //Afbeelding groote //plaatje laden $img = null; if ($ext == 'jpg' || $ext == 'jpeg') { $img = imagecreatefromjpeg($image_path); } else if ($ext == 'png') { $img = imagecreatefrompng($image_path); } //Groote controleren if ($img) { # Get image size and scale ratio $width = imagesx($img); $height = imagesy($img); $scale = min(MAX_WIDTH /$width, MAX_HEIGHT /$height); //Als het plaatje te groot is, kleiner maken if ($scale < 1) { $new_width = floor($scale*$width); $new_height = floor($scale*$height); //Tijdelijk plaatje $tmp_img = imagecreatetruecolor($new_width, $new_height); //Oude plaatje weggooien en tijdelijk vast zetten imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagedestroy($img); $img = $tmp_img; } } //plaatje opslaan imagejpeg($img, $dir.'/thumb/'.$pic); chmod($dir.'/thumb/'.$pic, 0777); //Plaatje laten zien header("Content-type: image/jpeg"); imagejpeg($img); ?>
Soms doet hij het wel en soms niet. Wanneer wel en wanneer niet dat heb ik nog niet door. Maar zo ziet mijn code eruit. Maar wat wel altijd gebeurd is het aanmaken van een bestand in images/thumb/temp (en het verwijderen ervan). Maar het maken/weergeven/opslaan van de thumb lukt niet altijd. Waar zit de fout?
http://users.pandora.be/DJ_QT_aXcesS/baby%20P.jpg (doet hij niet)
http://users.pa...ommieairke .jpg (doet hij wel)
Ik heb het al op verschillende forums gevraagd maar ik kom er maar niet uit. (kan er iemand meer info geven)
|