Avatar billede olsson15 Nybegynder
07. oktober 2004 - 15:44 Der er 6 kommentarer og
1 løsning

Hjælp med trumb via upload script.

Jeg skal bruge noget hjælp med mit upload script.

Sådan som det er nu:
Når en bruger oprettes bliver der automatisk, lavet to mapper
/users/$username/
og
/users/$username/thumb/

Jeg har så et upload script som som ved upload af et billede omdøber det til "billede1", resizer det og smider det i brugerens mappe (/users/$username/)
det virker fint.

Men jer vil gerne have at der bliver lavet et thumb (100x75) af billedet, billedet skal så smider i mappen
/users/$username/thumb/
Hvordan laver man det ?
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 15:45 #1
Min kode ser sådan her ud :

//fejl som vises på upload formen!
$fejl_billede5 = "";
$status_billede5 = "";
$sizelimit = "ja";
$sizebytes = "1000000";


//stien, hvortil filer skal uploades, her et subdir til roden af domænet   
$dist = $_SERVER["DOCUMENT_ROOT"] . "/users/$coo_username/";

//Er det en enkelt fil? (billede5)
if(isset($_FILES["billede5"])) {

//til brug for info om filtyper
$str1 = $$newName;
$str2 = $_FILES["billede5"]["size"];
$str3 = $_FILES["billede5"]["type"];


//Filer som kan uploades
$filetyper = array("image/jpg", "image/jpeg", "image/pjpeg", "image/png", "image/x-png");

//Tjek om filen er for stor
if ($str2 > $sizebytes) {
  $fejl_billede5 .= "  Billedet er for stort. Det må højst fylde 1 mb!<br>\n";
  header("Location: edit_bil_billede_form.php?fejl_billede5=$fejl_billede5");
exit;
}

//Tjek om der er en fil
    if ($_FILES["billede5"]["name"] == "") {
$fejl_billede5 .= "  Ingen fil valgt - prøv igen!<br>\n";
header("Location: edit_bil_billede_form.php?fejl_billede5=$fejl_billede5");
exit;
    }
   

   

//Tjek om filen er i array'et af tiladte filtyper
    if (!in_array($_FILES["billede5"]["type"], $filetyper)) {
$fejl_billede5 .= "  Filtypen er ikke tilladt til upload!<br>\n";
header("Location: edit_bil_billede_form.php?fejl_billede5=$fejl_billede5");
exit;
    }

   
        //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES["billede5"]["tmp_name"])) {
       
       
#-+ Read the source image
    $src_img = ImageCreateFromJPEG($_FILES["billede5"]["tmp_name"]);

    #Vælg bredden
    $tn_w = "400";

    #Hent billedets bredde og højde
    $imginfo = getimagesize($_FILES["billede5"]["tmp_name"]);
    $org_w= $imginfo[0];
    $org_h = $imginfo[1];

    #Beregn højden i forhold til bredden
    $tn_h = floor($tn_w * $org_h / $org_w);
           
    #Sæt det nye billede
    $dst_img = imagecreatetruecolor($tn_w,$tn_h);
       
    #Ændre det!
    imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);
               
    #Gem det!
    ImageJPEG($dst_img, $_FILES["billede5"]["tmp_name"], "95");

   
    #slet "midlertidige" filer fra serveren.
    imagedestroy($dst_img);

    //Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
    move_uploaded_file($_FILES["billede5"]["tmp_name"], $dist . $_FILES["billede5"]["name"]);
   
  // adskiller filnavn fra filtype
    $ext = explode(".", $_FILES["billede5"]["name"]);
    $newName =  billede5 . $bruger_id . "." . $ext[1];
    rename($dist . $_FILES["billede5"]["name"], $dist."".$newName);
   
      $today = date("d-m-Y");
      $update_profil = mysql_query("UPDATE brugere SET lastlogin = '$today', billede5 = '$newName' WHERE username = '$coo_username'");

   
    $status_billede5 .= "  Billedet blev uploadet!<br>\n";
    header("Location: edit_bil_billede_form.php?status_billede5=$status_billede5");


        }else{
        $fejl_upload .= "  Sorry, men upload skete IKKE!<br>\n";
    }

}

if($antal < 1) { //Hvis der ingen filer er valgt
$fejl_billede5 .= "  Vælg et billede til upload!<br>\n";
    }else{
header("Location: edit_bil_billede_form.php?fejl_billede5=$fejl_billede5,status_billede5=$status_billede5");
    }

?>
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 15:46 #2
I spørgsmålet har jeg skrevet $username
det skal rettes til $coo_username som i koden

:D en skrive fejl
Avatar billede bojo Nybegynder
07. oktober 2004 - 15:52 #3
Du har dette spg. kørende: http://eksperten.dk/spm/547691 hvad med at lukke et af dem.
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 16:08 #4
bojo kom med et svar på det tidligere spørgsmål:
http://eksperten.dk/spm/547691
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 16:52 #5
Bojo har du ikke et forslag til mit problem ?
Avatar billede bojo Nybegynder
07. oktober 2004 - 20:35 #6
Du gentager dette med din thumb størrelse og placering istedet ( og et andet navn f.eks $dst_img_thb )

  #Sæt det nye billede
    $dst_img = imagecreatetruecolor($tn_w,$tn_h);
       
    #Ændre det!
    imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);
               
    #Gem det!
    ImageJPEG($dst_img, $_FILES["billede5"]["tmp_name"], "95");
Avatar billede olsson15 Nybegynder
08. oktober 2004 - 20:47 #7
hmmm virker ikke...
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