mehrere Thumbnails von einer Datei

silicone
Hallo,

nun hab ich dank eurer Hilfe ein tolles Script zur Thumbnailerzeugung und schon bahnt sich das nächste Problem an:

Ich möchte nun, dass mir das Script zwei Thumbs in unterschiedlicher Größe und in unterschiedlichen Ordnern erstellt.
Kann doch eigendlich nicht so schwer sein, oder?
Leider verlassen mich meine Kenntnisse, so dass ich euch um Hilfe bitten möchte.

Hier nun das Script, wie es z. Z. benutzt wird:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<?php function createThumb($source$destination ""$width 245$max_height 170)
{
    list($src_width$src_height$type) = getimagesize($source);
    switch ($type)
    {
        case 1$src_img imagecreatefromgif($source);  break;
        case 2$src_img imagecreatefromjpeg($source); break;
        case 3$src_img imagecreatefrompng($source);  break;
        default: return false;
    }
    $dst_height = (int)round($width $src_height $src_width);
    $dst_img imagecreatetruecolor($width,
        min($dst_height$max_height));
    $dst_y = (int)round((imagesy($dst_img) - $dst_height) / 2);
    imagecopyresampled($dst_img$src_img0$dst_y00,
        $width$dst_height$src_width$src_height);
    if (empty($destination)) $destination $source;
    $destination preg_replace('/\.[a-z]+$/i''.jpg',
        $destination);
    imagejpeg($dst_img$destination);
    return true;
} ?>



Schönen Gruß und Danke im Vorraus,
Silli
silicone
Hat sich erledigt... Mauer
silicone
So, schon kommt das nächste Problem :-(

Habe das Script jetzt mit upload-funktionalität gepaart.
php:
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:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:

<?

switch (true) {  
case ($_FILES):
$my_data $_FILES;  
break;

case ($HTTP_POST_FILES):  
$my_data $HTTP_POST_FILES;  
break;  
}
$thumb_path ="./../thumbs/";
$upload_path="./../bilder/";
$max_size=10240000;

if ((isset($my_data['datei'])) && ($my_data['datei']['size']<=$max_size)){

    // evtl. statt @move_uploaded_file @copy benutzen
    if (move_uploaded_file($my_data['datei']['tmp_name'],$upload_path.$my_data['datei']['name']) ) {
        createThumb($upload_path.$my_data['datei']['name'],"",245,170);
        createThumb($upload_path.$my_data['datei']['name'],$thumb_path.$my_data['datei']['name'],100,60);
                $success=true;
    }else{
        $success=false;
    }
}else{
    $success=false;
}


function createThumb($source$destination$width$max_height)
{ 
    list($src_width$src_height$type) = getimagesize($source); 
    switch ($type) 
    { 
        case 1$src_img imagecreatefromgif($source);  break; 
        case 2$src_img imagecreatefromjpeg($source); break; 
        case 3$src_img imagecreatefrompng($source);  break;
        default: return false; 
    }
    $dst_height = (int)round($width $src_height $src_width); 
    $dst_img imagecreatetruecolor($width,
        min($dst_height$max_height)); 
    $dst_y = (int)round((imagesy($dst_img) - $dst_height) / 2); 
    imagecopyresampled($dst_img$src_img0$dst_y00,
        $width$dst_height$src_width$src_height); 
    if (empty($destination)) $destination $source; 
    $destination preg_replace('/\.[a-z]+$/i''.jpg', 
        $destination); 
    imagejpeg($dst_img$destination); 
    return true; 
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>flash_upload</title>
<script language="JavaScript" type="text/javascript">
<!--
function doCmd(val){
parent.oben.document.flashfilm.TGotoLabel("/upload_mc",val);
}
// end hiding contents -->
</script>
</head>
<?if($success==true){?>
<body onLoad="doCmd('success');document.location.href='upload.html'">
<?}else{?>
<body onLoad="doCmd('error');document.location.href='upload.html'">
<?}?>
</body>
</html>
 


Funktioniert auf dem lokalen Server wunderbar mit jedem Bild. Online macht er aber leider Mukken...
Ab einer bestimmten Bildgröße skaliert das Bild nicht mehr oder nicht richtig und wird dann unskaliert abgelegt.
Fehlermeldung gibt es nicht(timeout, oder so).

Was kann ich nun machen, damit das Skript auch online funzt?

Gruß,
Silli
silicone
Hat sich ebenfalls erledigt...
daHooligan
wie wäre es wenn du die lösung postest??
silicone
Gibt in dem Sinne keine Lösung. Es hat sich herausgestellt, dass es kein Laufzeitfehler war, sondern die hochgeladene Datei hatte als Endung .JPG.
Das Script hat sich bei der Groß-Kleinschreibung verschluckt. Da auf Server Casesensitive.
Das oben gepostete Script läuft soweit.


Gruß,
Silli
chrigu99
auch wenn es für dich nach keiner lösung aussieht ist es trotzdem eine und ein posting ist immer von nützen für die nachwelt, welche gleiche probleme erleidet.

schöne grüsse