Avatar billede BTEngineer Novice
10. februar 2006 - 12:23 Der er 7 kommentarer og
1 løsning

Forsøg på oprettelse af thumb

Jeg sidder med et script til upload af billede. Selve upload af det primære billede fungerer udemærket, men jeg kan ikke umiddelbart hitte ud af hvordan jeg får gemt selve mit thumb (som jeg forsøger at gemme i bunden af mit script).

<?
$dir = "./foto/"; // Angiver placeringen for filen

$fra = $_FILES['file']['tmp_name']; // Placeringen filen skal hentes fra
$file_type = strtolower(end(explode(".", $_FILES['file']['name']))); // Find filtypen f.eks. ".png"

//Tjek om filformatet er acceptabelt (denne kode accepterer kun: jpg/jpeg, png)

if($file_type == "jpg" || $file_type == "jpeg" || $file_typpe == "png") {
    $tid = time(); // Hent Unix timestamp til senere navngivning af billedet.
    $nytnavn = $tid .'_'. rand(0,100) .'.'. $file_type; // Angiver navnet til den nye fil. Navnet får foruden timestamp et tilfældigt nummer mellem 0 og 100
   
    $til = $dir . $nytnavn; // Filens placering med alle angivelser
   
    // Upload filen (Dette upload er format sikret så du både kan uploade i PHP4 og PHP5)
    if(function_exists("move_uploaded_file")) {
        move_uploaded_file($fra, $til);
    } else {
        copy($fra, $til);
    }
   
    // Forbered opbygning af thumb
    $width = 200;
    $height = 200;
   
    // Content type
    header('Content-type: image/jpeg');
   
    // Get new dimensions
    list($width_orig, $height_orig) = getimagesize($til);
   
    if($width && ($width_orig < $height_orig)) {
        $width = ($height / $height_orig) * $width_orig;
    }else{
        $height = ($width / $width_orig) * $height_orig;
    }
   
    // Resample
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($til);
    $demo2 = imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
   
    // Output
    #$demo = imagejpeg($image_p, null, 100);
   
    $til2 = $dir . "thumb_" . $nytnavn;
   
    if(function_exists("move_uploaded_file")) {
        move_uploaded_file($demo2, $til2);
        header("location:test.php?id=1");
    }else{
        copy($demo2, $til2);
        header("location:test.php?id=2");
    }
}
?>
Avatar billede coderdk Praktikant
10. februar 2006 - 14:10 #1
Lige under:
$til2 = $dir . "thumb_" . $nytnavn;

Tilføj:

imagejpeg($demo2, $til2, 90);

:)
Avatar billede BTEngineer Novice
12. februar 2006 - 10:10 #2
Det virkede ikke.

Er der måske håb for at du har en anden løsning? :)
Avatar billede coderdk Praktikant
12. februar 2006 - 17:51 #3
Det bør virke, måske har du ikke sat rettighederne på biblioteket? I FTP kan du sætte permissions til 777.
Avatar billede BTEngineer Novice
12. februar 2006 - 18:26 #4
Jo for standard fotoet bliver jo uploadet. Det er kun thumben der ikke bliver tilføjet til mappen.
Avatar billede BTEngineer Novice
15. februar 2006 - 11:59 #5
http://www.blowb.dk <- se der.
Avatar billede coderdk Praktikant
15. februar 2006 - 12:14 #6
Det skulle nok have været:

imagejpeg($image_p, $til2, 90);

og ikke

imagejpeg($demo2, $til2, 90);

som jeg ellers skrev...
Avatar billede BTEngineer Novice
15. februar 2006 - 21:17 #7
Ja der er kommet endnu et problem mht. dette fotosystem. Jeg vil jo gerne have den til at skifte side når jeg har uploadet billedet. Jeg vil jo så bruge:

header("location:side2.php");
exit;

Dette virker jo ikke pga. billedet så jeg prøvede følgende løsninger til at afslutte billedet:

imagedestroy(image_p);
imagedestroy($til2);
imagedestroy($demo2);
imagedestroy($image);
break;
exit;

men ingen af dem virkede. Hvad kan jeg gøre da?
Avatar billede coderdk Praktikant
16. februar 2006 - 00:04 #8
Du skal såmænd bare fjerne al output, i.e. header('Content-type: image/jpeg');  osv skal væk, så kan du godt bruge header('location');
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester