12. april 2004 - 13:30Der er
20 kommentarer og 2 løsninger
Upload Profilbillede
Hej, Jeg er gået igang med at lave et community og nu vil jeg også gerne have at folk kan uploade et profilbillede selv. Jeg har nogle problemer omkring omdøbning af billedet når det bliver uploadet og størrelsen. Hvordan skærer jeg billedet til så det bliver f.eks 130*170?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
#Bruger selv: følgende: fjern # og smid det der står ovenfor væk! #move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $_FILES['upfile']['name'][$i]);
Brug dette istedet, fik ikke læst dit spg ordentligt!
benyt dette vis du vil gemme det som det "rigtige" filnavn. <?php #da du måske har flere filer uploaded? for($i = 0; $i < count($_FILES['upfile']['name']); $i++) { #Benytter gdlib
#path hvor du vil gemme dit billede. $dist = $_SERVER["DOCUMENT_ROOT"]."/pictures/";
hvis du selv vil sætte filnavnet! <?php #da du måske har flere filer uploaded? for($i = 0; $i < count($_FILES['upfile']['name']); $i++) { #Benytter gdlib
#path hvor du vil gemme dit billede. $dist = $_SERVER["DOCUMENT_ROOT"]."/pictures/";
hvis du ikke har flere billeder uploadet kan du bare skriv $_FILES['upfile']['name'][0] istedet og fjerne for løkken
Hvis du vil holde en bestemt størrelse, kan du springe beregningerne over for det nye billedes størrelse og vælge $tn_w og $tn_h til at være bredden og højden du ønsker!
Kender ikke til frac.dk men på deres forside står der at der er gdlib 2.0 så det burde virker, hvis gdlib ikke er installeret der hvor duskal bruge scriptet har du et problem, dog kan det afhjælpes med ImageMagick, det kræver dog at serveren har dette installeret også... PHP har ikke nogen funktioner i "sigselv" der kan behandle billeder som du ønsker.
Warning: getimagesize(): Unable to access /web/www/frac/users/f97x2/profilbillede/hmm.jpg in /web/www/frac/users/f97x2/upload.php on line 18
Warning: getimagesize(/web/www/frac/users/f97x2/profilbillede/hmm.jpg): failed to open stream: No such file or directory in /web/www/frac/users/f97x2/upload.php on line 18
Warning: Division by zero in /web/www/frac/users/f97x2/upload.php on line 23
Warning: imagecreate(): Invalid image dimensions in /web/www/frac/users/f97x2/upload.php on line 26
Warning: imagecopyresized(): supplied argument is not a valid Image resource in /web/www/frac/users/f97x2/upload.php on line 29
Warning: imagejpeg(): supplied argument is not a valid Image resource in /web/www/frac/users/f97x2/upload.php on line 32
Prøv lige dette, så kan tjekker den først om filen er blevet uploadet... (så kan vi se om det er det som er problemet!) <?php if($submit=="Upload"){ #Benytter gdlib
#path hvor du vil gemme dit billede. $dist = "/web/www/frac/users/f97x2/profilbillede/";
Ved ikke om det kan give noget men prøv at skifte: <input type=\"file\" name=\"upfile\" size=\"30\"> ud med: <input type=\"file\" name=\"upfile[]\" size=\"30\">
scriptet virker ihvertfald på min egen server og et par webhoteller..
Det virker heller ikke. Jeg har givet den alle rettigheder (777) og det samme med mappen den uploades til så jeg kan ikke forstå det. Jeg ved at almindelig upload uden nogen form for resize virker. Det bruger jeg i øjeblikket. Det virker faktisk fint nok da jeg har sat et loft på størrelsen, det kunne dog være rart hvis ikke selv brugeren var nødt til at resize.
kan du ikke poste din nuværende upload funktion, for det er upload funktionen der er fucked, og så kan jeg sætte resize ind i den? Forstår bare ikke hvorfor det nuværende ikek virker. Men post det andet så kan jeg rette det til for dig.
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");
} 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'"); } ?>
} 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'"); } ?>
Nu virker det næsten... Billedet bliver uploadet, resized og gemt. Desværre bliver billedet meget mørkt og mister næsten alle sine farver. Hvorfor det?
Var nødt til at rette nogle småfejl med " og ". ."
} 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'"); } ?>
#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'"); } ?>
Vi er milimeter fra målet... Det bliver uploadet, resized og gemt med farver. Kvaliteten bliver desværre forringet... Jeg prøvede at resize et billede manuelt og med upload funktionen og det manuelle blev klart bedst... Kan det ordnes?
Jeg vil lige sige at jeg er virkelig glad for din hjælp!
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.