Avatar billede brevkasserne Nybegynder
23. maj 2003 - 00:45 Der er 20 kommentarer og
1 løsning

Upload billeder samtidig med tilpas størrelse!

Er det muligt at når der uploades et billede så tjekker den om højden er imellem 100 og 400 pixels, bredden mellem 300 og 400 pixel og filtypen af .jpeg eller .jpg?

Og foruden at hvis billedet er acceptabelt skal den uploade billedet til mappen billeder, samtidig med at der kopieres et billede i mappen thumbnails som skaleres ned til enten 100 pixel høj og passende bredde eller 100 pixel bred og passende højde afhængig af hvilken side der er størst på billedet!

???

Ved godt det er et stort spm, men det er ikke selve uploadingen jeg søger, men derimod at den tjekker billederne og at den kan minimere billeder til thumbnails!
Avatar billede brevkasserne Nybegynder
23. maj 2003 - 00:46 #1
Håber i fatter spm'et, eller spørg :-D
Avatar billede tipsen Nybegynder
23. maj 2003 - 01:19 #2
For at finde billedstørrelsen, kan du bruge getimagesize() http://dk.php.net/manual/en/function.getimagesize.php
Avatar billede martinbk Nybegynder
23. maj 2003 - 01:46 #3
//først definerer vi filtyper vi vil have

$sti = "/sti/til/dine/billeder";
$maxbredde = "400";
$nybredde  = "400";


function okfiletype($filename)
{
  $filetypes = array("jpg", "jpeg");
 
  for($i=0;$i<count($filetypes);$i++)
  {
    if(strtolower($filetypes[$i]) == strtolower(substr($filename, -3))  || strtolower($filetypes[$i]) == strtolower(substr($filename, -4))) {
      return true;
    }
    else {
    return false;
    }
  }
}

// så uploader vi


function upload_picture($file, $filename)
{
$filepath = "$sti";
$destinationname = $filepath.$filename;
if ($file != "none")
{
  if(move_uploaded_file($file, $destinationname))
  {
    chmod($destinationname, 0644);
      return $filename;
  }
  else
      return false;
  }
else
    return false;
}

// functionen der resizer billederne
function resizeImage($src_file, $dest_file, $nybredde)
{
$imginfo = @getimagesize($src_file);
if ($imginfo == NULL)
  return false;

// height/width
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];

$ratioWidth = $srcWidth/$nybredde;
$ratioHeight = 0;
$destWidth = $nybredde;
$destHeight = $srcHeight / $ratioWidth;
$src_img = imagecreatefromjpeg($src_file);
$dst_img = imagecreatetruecolor($destWidth,$destHeight);
ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight);
imagejpeg($dst_img, $dest_file, 100);
imagedestroy($src_img);
imagedestroy($dst_img); 
return $dest_file;
}
//
og så sætter vi det hele sammen
if(!okfiletype($_FILES['userpicture']['name'])){
          echo "Filtypen(". substr($_FILES['userpicture']['name'], -4) .") er ikke tilladt!<br> ";
          echo "<a href=\"java script:history.back()\">Back</a>";
          exit;
        }
        $nr = 1;
        $pic = $_FILES['userpicture']['name'];
        while(file_exists("$sti"."$pic")){
        $pic = rename_file($pic, $nr++);
        }
        $uploaded = upload_picture($_FILES['userpicture']['tmp_name'], $pic);
   
        if($uploaded == false){
        echo "billedet blev ikke uploadet<br>";
        }
        else
        {
        echo "$uploaded was successfully uploaded!<br>";
          $filesize = filesize("$sti"."$uploaded");
          $imagesize = getimagesize("$sti"."$uploaded");
          $thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $sti, $metode);
          if($imagesize[0] > $maxbredde)
              $norm = resizeImage("$sti"."$uploaded", "$sti"."normal_"."$uploaded", $nybredde);
    }
   


ovenstående er utestet.. men skriv hvis du får problemer..
løsningen kræver også GD-lib < 2.0
Avatar billede martinbk Nybegynder
23. maj 2003 - 01:48 #4
oops glemte lige min billede rename function.. som også skal bruges i tilfælde af et billede med det navn allerede existerer

function rename_file($filename, $nr)
{
  $pos = strrpos($filename, ".");
  $name = substr($filename, 0, $pos);
  $ext = substr($filename, $pos, strlen($filename)-$pos);
  if(ereg("[0-9]", substr($name, -1) ))
    $string = substr($name, 0, strlen($name)-1) . "$nr" . "$ext";
  else
      $string = "$name" . "_$nr" . "$ext";
  return $string;
}
Avatar billede brevkasserne Nybegynder
23. maj 2003 - 11:49 #5
Det ser rigtig godt ud holybull! Lav lige et svar så du kan få nogen point efter jeg har kigget ordentlig på det :-)
Avatar billede brevkasserne Nybegynder
23. maj 2003 - 17:11 #6
Er der nogen der ved om GDlib er installeret hos Wannafind.dk? Og ellers hvordan jeg gør med en konto hos Wannafind.dk?
Avatar billede brevkasserne Nybegynder
23. maj 2003 - 17:12 #7
Og hvis det er installeret hos Wannafind.dk, om jeg så skal gøre noget for at benytte ud over holybull's kode?
Om man skal connecte på nogen måde eller...?
Avatar billede martinbk Nybegynder
23. maj 2003 - 17:13 #8
som koden er der skal du ikke gørre ret meget ved den... men den kan jo self udvides med lidt SQL
Avatar billede brevkasserne Nybegynder
27. maj 2003 - 13:02 #9
Er der nogen der ved om Wannafind.dk har GDlib???
Avatar billede tipsen Nybegynder
27. maj 2003 - 13:05 #10
Spørg dem dog...
Avatar billede brevkasserne Nybegynder
28. maj 2003 - 17:58 #11
Det skulle de gerne understøtte, så holybull hvis du gider lave et svar!?
Avatar billede brevkasserne Nybegynder
30. maj 2003 - 12:24 #12
Jeg får hele tiden fejlen med at jeg dividerer med 0 i linje 61 og 64

$ratioWidth = $srcWidth/$nybredde;    <------ linje 61
$ratioHeight = 0;
$destWidth = $nybredde;
$destHeight = $srcHeight / $ratioWidth; <----- linje 64
Avatar billede brevkasserne Nybegynder
30. maj 2003 - 19:48 #13
Hmmm, tror jeg har luret det:
denne linje:
$thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $sti, $metode);

ska hedde:
$thb = resizeImage("$sti"."$uploaded", "$sti"."thumb_"."$uploaded", $nybredde);

Er der nogen der ved hvordan jeg sletter det oprindelige billede?
Avatar billede brevkasserne Nybegynder
31. maj 2003 - 12:29 #14
Laver du ikk lige et svar holybull??
Avatar billede brevkasserne Nybegynder
01. juni 2003 - 13:30 #15
??? Laver du ikke lige et svar så jeg kan lukke spm'et?
Avatar billede tipsen Nybegynder
01. juni 2003 - 13:44 #16
Vil foreslå dig at give ham en uges tid - hvis han/hun ikke lige er ved en computer i disse solskinsdage.
Avatar billede brevkasserne Nybegynder
01. juni 2003 - 17:14 #17
Fair nok ;-)
Så vil jeg selv smutte ud i det go'e vejr.
Vender tilbage!!!
Avatar billede brevkasserne Nybegynder
19. juli 2003 - 14:38 #18
Nu har du ikke glemt at lave et svar, vel holybull?
Avatar billede brevkasserne Nybegynder
20. juli 2003 - 22:00 #19
Er du der? Eller har du helt glemt mig :-( ???

;-)
Avatar billede brevkasserne Nybegynder
23. juli 2003 - 00:34 #20
En uge til så lukker jeg spm'et... :-(

Håber du svare!
Avatar billede brevkasserne Nybegynder
30. juli 2003 - 23:10 #21
:-(, lukker spørgsmålet!
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