14. oktober 2005 - 13:47
Der er
22 kommentarer og 1 løsning
avatar, hvordan?
hvordan laver jeg avarta på mit bruger system..? man skal kunne sætte maxs fil størrelse og når brugeren skifter til et nyt skal det gamle slettes jeg vil meget gerne havde kode eksempler med forklaringerne
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
14. oktober 2005 - 13:59
#1
Du skal til at starte med ha et upload system til billederne. Efter det kan du lave en if(getimagesize($_FILE['img']['tmp_name']) > 500) { echo "invalid image"; } .. Noget i den stil Jeg kan godt lave noget til dig hvis du vil?
14. oktober 2005 - 14:10
#2
jo men det kan jeg jo ikke finde ud af... kan du evt linke til en artikel
14. oktober 2005 - 14:11
#3
Skulle lige læse paa det.. Jeg prøver lige at bixe noget sammen til dig.
14. oktober 2005 - 14:21
#4
Det første vi gør er at lave en form hvorfra man skal uploade billedet. <form action"action.php" method="post"> <input type="file" name="img"> </form>
14. oktober 2005 - 14:25
#5
jeg har kigget lidt rund og fandt det her script <?php $extlimit = "ja"; $limitedext = array(".gif",".jpg",".png",".jpeg",".bmp"); $sizelimit = "ja"; $sizebytes = "15000"; $absolute_path = $sti."profilbillede"; if($submit=="Upload"){ $dir = "dir"; if ($file != "") { $ext=strrchr($file_name,'.'); $ext=strtolower($ext); if (file_exists($absolute_path."/".$id."".$ext)) { die("Billedet eksisterer allerede"); } if (($sizelimit == "ja") && ($file_size > $sizebytes)) { die("Billedet er for stort. Det må højest fylde 15 kb."); } if (($extlimit == "ja") && (!in_array($ext,$limitedext))) { die("Filen er en forkert filtype."); } @copy($file, $absolute_path."/".$id."".$ext) or die("Filen kunne ikke kopieres til serveren ".$absolute_path."/".$id."".$ext); #-+ Read the source image $src_img = ImageCreateFromJPEG($absolute_path."/".$id."".$ext); #Vælg bredden $tn_w = "160"; #Hent billedets bredde og højde $imginfo = getimagesize($absolute_path."/".$id."".$ext); $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, $absolute_path."/".$id."".$ext, "95"); #slet "midlertidige" filer fra serveren. imagedestroy($dst_img); } else { die("Husk at vælge et Billede"); } echo "<p />"; echo $file_name." blev uploaded"; mysql_query("UPDATE users SET billede='".$id."".$ext."' WHERE id='$id'"); } ?> <form method=POST action="index.php?upload" enctype=multipart/form-data> <p>Vælg et Billed:<br> <input type=file name=file size=30> <p><button name=submit type=submit value=Upload> Upload </button> </form>
14. oktober 2005 - 14:32
#6
Kan du self. ogsaa bruge.. Men her kommer resten af mit.. Se lige om det ikke skulle virke ;) I action.php: <? //navnet paa filen $img=$_FILES['img']['tmp_name']; //finder størrelsen af billedet $size=getimagesize($img); //tjekker om billedet er mindre end 10,000 bytes og 50x50 (widthxheight) if(filesize($img) > 10000 || $size[0] > 50 || $size[1] > 50) { echo "Invalid image! \nWidth:".$size[0]."\nHeigth:".$size[1]."\nBytes:".filesize($img); } else { //uploader filen move_uploaded_file($img, "avatars/".$username); echo "Valid image."; ?>
14. oktober 2005 - 14:34
#7
Hver gang en bruger oprette et nyt billede bliver det automatisk erstattet, fordi det har det samme navn som brugeren selv! (husk at definer $username) Haaber du kan bruge mit script..
14. oktober 2005 - 14:36
#8
jeg prøver lige dit script
14. oktober 2005 - 14:38
#9
Forresten! Jeg glemte at lukke else stringen med en } Saa burde den være der: <? //navnet paa filen $img=$_FILES['img']['tmp_name']; //finder størrelsen af billedet $size=getimagesize($img); //tjekker om billedet er mindre end 10,000 bytes og 50x50 (widthxheight) if(filesize($img) > 10000 || $size[0] > 50 || $size[1] > 50) { echo "Invalid image! \nWidth:".$size[0]."\nHeigth:".$size[1]."\nBytes:".filesize($img); } else { //uploader filen move_uploaded_file($img, "avatars/".$username); echo "Valid image."; } ?>
14. oktober 2005 - 14:46
#10
jegb har ikke prøvet det endnu men billed skal omdøbes til brugerens brugernavn gør det det..?
14. oktober 2005 - 14:50
#11
Ja det gør den. move_uploaded_file($img, "avatars/".$username); gemmer billedet i mappen "avatars" (som ville være en god idé at lave først) og kalder billedet brugerens navn.. Men som sagt, du skal huske at ha defineret variablen før det virker ;o)
14. oktober 2005 - 15:09
#12
Sig til hvis du støder på evt. problemer.
14. oktober 2005 - 17:57
#13
det bliver først på mandag jeg kan svare har desværre ike tid mere
15. oktober 2005 - 10:10
#14
jeg kan ikke få det til at upload noget billed //navnet paa filen $img=$_FILES['img']['tmp_name']; //finder størrelsen af billedet $size=getimagesize($img); //tjekker om billedet er mindre end 10,000 bytes og 50x50 (widthxheight) if(filesize($img) > 10000 || $size[0] > 50 || $size[1] > 50) { echo "Invalid image! \nWidth:".$size[0]."\nHeigth:".$size[1]."\nBytes:".filesize($img); } else { move_uploaded_file($img, "avatar/".".$_SESSION[user][username]."); echo "Valid image."; mysql_query("UPDATE cms_brugere set avatar = '".$_SESSION[user][username]."' WHERE brugernavn = '".$_SESSION[user][username]."'"); }
17. oktober 2005 - 13:21
#15
Min fejl :) Formen skal se saadan her ud: <form enctype="multipart/form-data" action"action.php" method="post"> <input type="file" name="img"> </form>
17. oktober 2005 - 16:50
#16
det vikrker stadig ikke
17. oktober 2005 - 16:55
#17
den upload ingen fil
17. oktober 2005 - 17:20
#18
har fået det her til at virke næsten da den skiver ikke .jpg eller hvad type billed ny er men det bliver uploadet og´så mangler der også så jeg kan bestemme fil størrelsen $konf["dir"] = "./avatar"; // Upload dir $brugernavn = "".$_SESSION[user][username].""; if($_FILES["img"]["size"] > 0) // Er der en fil? { $tmpname = $_FILES["img"]["tmp_name"]; // Hvor tmp filen ligger $newname = $konf["dir"] . "/" . $brugernavn; // Hvor skal den hen move_uploaded_file($tmpname, $newname); // Flyt filen... }
18. oktober 2005 - 22:07
#19
if(filesize($img) > 10000 || $size[0] > 50 || $size[1] > 50)
19. oktober 2005 - 17:42
#20
har leget lidt med det $konf["dir"] = "./avatar"; // Upload dir $max_size = 200; // Kb $max_heigth = 200; // Pixels $max_width = 200; // Pixels $brugernavn = "".$_SESSION[user][username].""; if($_FILES["img"]["size"] > 0) // Er der en fil? { $tmpname = $_FILES["img"]["tmp_name"]; // Hvor tmp filen ligger $extension = end(explode(".", $_FILES['img']['tmp_name'])); // Filtype $newname = $konf["dir"] . "/" . $brugernavn . "." . $extension; // Hvor skal den hen list($width, $heigth) = getimagesize($_FILES['img']['tmp_name']); // Højde/bredde if(($_FILES['img']['size'] <= $max_size) && ($heigth <= $max_height) && ($width <= $max_width)) { // Størrelse, højde, bredde if(eregi("jpg|gif|png|", $extension)) { // Checker for gængse billedformater - tilpas selv move_uploaded_file($tmpname, $newname); // Flyt filen... mysql_query("UPDATE cms_brugere set avatar = '".$_SESSION[user][username]."' WHERE brugernavn = '$newname'"); } else { echo "Filen er ikke et billede"; } } else { echo "Filen overstiger tilladte dimensioner"; } } men det virker ikke
19. oktober 2005 - 18:41
#21
der er også noget galdt med $extension funktion den skriver nemlig /usr/export/tmp/phpkZYY83 i stedet for .filtype
22. oktober 2005 - 08:03
#22
lukker
22. oktober 2005 - 08:04
#23
kan ikke få det til at virke... men tak for hjælpen
Vi tilbyder markedets bedste kurser inden for webudvikling