Avatar billede zacho112 Nybegynder
14. januar 2006 - 00:36 Der er 6 kommentarer og
1 løsning

Upload os .gif og .png

Hej, jeg har siddet og lavet et billede upload script, men da jeg var færdig med det, kom jeg i tanke om at jeg også skulle bruge andre billede formater end jp(e)g. Og nu vil jeg høre om der er nogle, af jer som kan hjælpe mig med, at få dette script til at uploade .gif og .png os.

Her er koden:
-------------------- script start --------------------

<?php
$konfiguration["upload_bibliotek"] = "./upload/";
$konfiguration["max_stoerrelse"] = "1000";

$fra = $_FILES["upfil"]["tmp_name"];
$fra2 = $_FILES["upfil"]["name"];
$til = $konfiguration["upload_bibliotek"] . $_FILES["upfil"]["name"];

$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Jeg accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
}

if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
$newfilename = "".rand(1, 1000000)."".$fra2."";
$newfilename2 = "upload/". $newfilename ."";
rename($til, $newfilename2);
} else {
  copy($fra, $til);
  rename($til, $newfilename2);
}
$pic = "upload/". $newfilename ."";
$thumb = "upload/small". $newfilename ."";
Thumb($pic, $thumb);

function Thumb($sourcefile, $targetfile) {
    $size = 230;
    $source_id = imageCreateFromJPEG($sourcefile);
    $source_x = imagesx($source_id);
    $source_y = imagesy($source_id);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id=imagecreatetruecolor($dest_x, $dest_y);
    imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    imagejpeg($target_id,$targetfile,100);
}
?>

-------------------- script slut --------------------
Avatar billede coderdk Praktikant
14. januar 2006 - 00:53 #1
Du skal jo bare checke hvilken type det er, i Thumb, og så lave en if/else eller switch/case hvor du bruger imagecreatefromjpeg eller imagecreatefrompng osv.
Avatar billede zacho112 Nybegynder
14. januar 2006 - 12:14 #2
Yep, havde os tænkt på det, men det kunne jo være der var en smartere måde.
Men hvis ik, så smid et svar, og du skal få dine point!
Avatar billede coderdk Praktikant
14. januar 2006 - 12:46 #3
Nej tak, bare behold dem :)
Avatar billede zacho112 Nybegynder
14. januar 2006 - 12:52 #4
Det er så iorden, men det kan være du kan hjælpe mig med at finde ud af, hvordan jeg får fat i filens filtype (jpg, gif osv)?
Avatar billede coderdk Praktikant
14. januar 2006 - 20:32 #5
Mit bedste bud på det, er at bruge getimagesize(): http://dk2.php.net/getimagesize

if ( $info = getimagesize( $til ) )
{
  switch ( $info[1] )
  {
    case 1:
        $type = 'gif';
        break;
    case 2:
        $type = 'jpg';
        break;
    case 3:
        $type = 'png';
        break;
    default:
        die( 'Billedformat ikke understøttet' );
  }
}

Kig på dokumentationen, der er alle typerne listet :)
Avatar billede zacho112 Nybegynder
14. januar 2006 - 20:42 #6
har selv fundet en anden løsning
Avatar billede zacho112 Nybegynder
22. juni 2006 - 20:09 #7
mit svar
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