Avatar billede olsson15 Nybegynder
06. oktober 2004 - 23:27 Der er 9 kommentarer og
1 løsning

Ang. upload script.

Hej jeg har dette script som virker fint, jeg skal bare have det rettet lidt til.

1. når billedet bliver uploadet, bliver det en ringe kvalitet. (for store pixels)

2. de skal skal laves thumb ved upload som skal gemmes gemmes i egen mappe..

foreløbig ser det sådan her ud:

//fejl som vises på upload formen!
$fejl_billede1 = "";
$status_billede1 = "";
$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? (billede1)
if(isset($_FILES["billede1"])) {

//til brug for info om filtyper
$str1 = $$newName;
$str2 = $_FILES["billede1"]["size"];
$str3 = $_FILES["billede1"]["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_billede1 .= "  Billedet er for stort. Det må højst fylde 1 mb!<br>\n";
  header("Location: edit_bil_billede_form.php?fejl_billede1=$fejl_billede1");
exit;
}

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

   

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

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

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

    #Hent billedets bredde og højde
    $imginfo = getimagesize($_FILES["billede1"]["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!
    ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);
               
    #Gem det!
    ImageJPEG($dst_img, $_FILES["billede1"]["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["billede1"]["tmp_name"], $dist . $_FILES["billede1"]["name"]);
   
  // adskiller filnavn fra filtype
    $ext = explode(".", $_FILES["billede1"]["name"]);
    $newName =  billede1 . $bruger_id . "." . $ext[1];
    rename($dist . $_FILES["billede1"]["name"], $dist."".$newName);
   
      $today = date("d-m-Y");
      $update_profil = mysql_query("UPDATE brugere SET lastlogin = '$today', billede1 = '$newName' WHERE username = '$coo_username'");

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


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

}

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

?>
Avatar billede detox Nybegynder
06. oktober 2004 - 23:47 #1
For en bedre billedkvalitet, så brug: imagecopyresampled().

ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);

til:

imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h);
Avatar billede olsson15 Nybegynder
06. oktober 2004 - 23:54 #2
har lige prøvet :(
kan det ikke blive bedre ?
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:58 #3
det er vel ikke fordi du sætter bredden til 400 og dermed måske forstørre
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 00:01 #4
nej billedet er 800*600
Avatar billede bojo Nybegynder
07. oktober 2004 - 00:07 #5
hvad så med 95 i kvalitet her

ImageJPEG($dst_img, $_FILES["billede1"]["tmp_name"], "95");

sorry, men jeg gætter kun :-)
Avatar billede detox Nybegynder
07. oktober 2004 - 00:27 #6
Ja, du skal nok ikke have " " omkring "95":

ImageJPEG($dst_img, $_FILES["billede1"]["tmp_name"], 95);
Avatar billede bojo Nybegynder
07. oktober 2004 - 00:35 #7
og thumbs laver du vel bare det hele igen, men resizer til noget mindre og gemmer under andet navn, f.eks sammefornavn_thb.jpg
Avatar billede olsson15 Nybegynder
07. oktober 2004 - 15:57 #8
Har fået det løst..
efter at have lavet begge jeres løsninger..

Så kom begge med et svar så kan I dele point
Avatar billede bojo Nybegynder
07. oktober 2004 - 16:49 #9
fino
Avatar billede detox Nybegynder
07. oktober 2004 - 16:51 #10
jep
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