09. december 2003 - 14:05Der er
9 kommentarer og 1 løsning
rediger uploadede personprofil billede - PLZZ
jeg har her et script til at uploade et billede til en tilhørende profil, og det virker som det skal.
jeg har også en "rediger profil" side hvor det er meningen at man skal kunne ændre sit profil billede. Det kunne jo gøres på samme måde, men der ko0mmer så til at ligge 2 billeder for den pågældende bruger - det er vi self ik interesseret i, så hvis nogen ligger inde med en form for oprydningsscript har du fame 200 pts.
I kan jo tage udgangspunkt i nedenstående kode og give et bud på oprydningskoden eller i skal oxo være velkomne til at poste et helt nyt script hvis i alligevel ligger inde med det.
jeg ville jo gerne hvis jeg kunne navngive billedet = $brugernavnet eller lign men jeg kan som sagt ikke gennemskue hvor eller hvordan det skal skrives i koden
Synes godt om
Slettet bruger
09. december 2003 - 14:56#7
Der står ingen steder i dit script hvordan du genkender brugeren. Derfor har jeg i dette eksempel valgt at gætte på at i din database har du et felt med brugernavn - og du genkender brugeren med $user - ellers kan du jo selv rette det til :)
Utestet:
<?PHP if($_POST['up']){
// Her flyttes filen fra. $fra = $_FILES['upfil']['tmp_name'];
// Hvad er det for en fil vi har. $ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
// hvad hedder billedet $billede = $_FILES['upfil']['name'];
// Vi skal have noget information fra databasen $connection = mysql_pconnect("xxx","xxx","xxx"); mysql_select_db("xxx");
// vi henter fra databasen hvor brugernavnet er det samme som brugeren. $query = mysql_query("SELECT * from persprofil WHERE brugernavn = '$user'") or die(mysql_error()); $row = mysql_fetch_array($query);
// vi tager navnet fra den tidligere fil list($et,$to) = explode(".",$row[profilbillede]);
// Vi giver vores billede et nyt navn $nytNavn = "$et.$ext";
// her er vores destination $til = "".$_SERVER["DOCUMENT_ROOT"]."godjamit/image/" . $nytNavn;
// her sker det magiske move_uploaded_file($fra, $til);
// vi henter højden og breden fra billedet $info = getimagesize("$til"); $width = $info[0]; $height = $info[1];
$query = mysql_query("insert into persprofil (profilbillede, imgheight, imgwidth) values ('$nytNavn', '$width', '$height')") or die(mysql_error());
jeg er desværre nødt til at gå hjem nu - fatter intet af hvad du har skrevet, men jeg tester det i morgen gider du skrive en kort beskrivelse af $et, $to og $ext
Synes godt om
Slettet bruger
09. december 2003 - 16:11#9
med $ext finder jeg filendelsen. Dvs om det er jpg, gif, png osv. $et og $to deler jeg det gamle billede op som findes i databasen ($et = navnet | $to = endelsen), for at få navnet på filen.
For at sikre dig at der kun er en fil pr bruger, burde du måske slette det gamle billede efter at have hevet informationerne ud af databasen, og inden overførslen af det nye billede. Eller gøre så man kun kan overføre en slags billeder, f.eks. jpg.
Synes godt om
Slettet bruger
09. december 2003 - 16:37#10
Har lavet et par rettelser. Det var bedre blot at slette det gamle billede og uploade det nye. det var jo egentlig det spørgsmålet gik ud på, nemlig kun at have et billede pr bruger. Jeg havde lavet en fejl i blot at indsætte noget data i databasen istedet for at opdatere den. Istedet er jeg kommet frem til dette. <?PHP if($_POST['up']){
// Her flyttes filen fra. $fra = $_FILES['upfil']['tmp_name'];
// Hvad er det for en fil vi har. $ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
// hvad hedder billedet $billede = $_FILES['upfil']['name'];
// Vi skal have noget information fra databasen $connection = mysql_pconnect("xxx","xxx","xxx"); mysql_select_db("xxx");
// vi henter fra databasen hvor brugernavnet er det samme som brugeren. $query = mysql_query("SELECT * from persprofil WHERE brugernavn = '$user'") or die(mysql_error()); $row = mysql_fetch_array($query);
// vi tager navnet fra den tidligere fil list($et,$to) = explode(".",$row[profilbillede]);
// Vi giver vores billede et nyt navn $nytNavn = "$et.$ext";
// her er vores destination $til = "".$_SERVER["DOCUMENT_ROOT"]."godjamit/image/" . $nytNavn;
// inden vi uploader, sletter vi lige det gamle billede unlink($_SERVER["DOCUMENT_ROOT"] ."godjamit/image/$row[profilbillede]");
// her sker det magiske move_uploaded_file($fra, $til);
// vi henter højden og breden fra billedet $info = getimagesize("$til"); $width = $info[0]; $height = $info[1];
// Vi opdatere databasen, istedet for blot at indsætte noget nyt. mysql_query("update persprofil set profilbillede = '$nytNavn',imgheight = '$height',imgwidth = '$width' WHERE brugernavn = '$user'") or die (mysql_error());
echo "Din fil er nu uploadet<br><br>"; } ?>
Synes godt om
Ny brugerNybegynder
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.