Avatar billede morten_21 Nybegynder
09. januar 2005 - 15:48 Der er 8 kommentarer

Brugeropdatering af billede

Halløj

Jeg er ved at lave en administrationsside, hvor brugeren kan opdatere forskellige oplysninger. Deriblandt et billede.

Der er tale om ét billede, resten er tekst og det har jeg styr på. Problemet er imidlertid hvordan det rent praktisk skal gøres med billedet.

Jeg har PHP og MySQL til rådighed. Jeg kan sagtens uploade billedfilen til en mappe på serveren med PHP, men kan man indsætte det som en BLOB i et bestemt felt i databasen, så den automatisk overskriver det forrige - i samme arbejdsgang?

På forhånd tak for alle input!
Avatar billede baitianlong Nybegynder
09. januar 2005 - 16:47 #1
Jeg vil foreslå dig at gemme billedet, og skrive en reference til billedet i databasen i stedet for (altså adressen/navnet)
Avatar billede jakoba Nybegynder
09. januar 2005 - 16:49 #2
Jeg har endnu aldrig fundet en eneste god grund til at lægge en billedfil ind i en database tabel. Det er langt nemmere at gemme filen som en fil og så blot lagre filnavnet i databasen, det er alligevel det der skal bruges når billedet skal vises frem via en <img kommando i html.
Avatar billede morten_21 Nybegynder
09. januar 2005 - 18:36 #3
Ja det er også min opfattelse. Men det ene billede og en smule tekst er det eneste der skal trækkes fra databasen.

Lad os så sige at jeg uploader filen til en mappe på serveren. Men ingen af de upload scripts jeg har set kan overskrive filen.. Er der nogen der har en løsning på det?
Avatar billede baitianlong Nybegynder
09. januar 2005 - 19:10 #4
metoden move_uploaded_file() overskriver da, hvis filen eksisterer !
Avatar billede morten_21 Nybegynder
09. januar 2005 - 19:42 #5
Hm jeg har kigget lidt på det - men jeg synes ikke jeg kan sætte tingene sammen. Findes der ikke et mere håndgribeligt eksempel.. lidt mere hen i retningen af hvad jeg skal bruge?
Avatar billede baitianlong Nybegynder
09. januar 2005 - 20:01 #6
<?php
if(isset($_FILES['fil'])) {
  if($_FILES['fil']['error'] != UPLOAD_ERR_OK) {
      print("Det gik galt");
  } else {
      if(move_uploaded_file($_FILES['fil']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/billeder/".$_FILES['fil']['name'])) {
          print("Fil uploaded");
          mysql_query("UPDATE brugere SET billede='".$_FILES['fil']['name']."' WHERE bruger='ENELLERANDENBRUGER'");
      }
  }
}
?>
<html>
<form enctype="multipart/form-data" action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
Billede: <input type="file" name="fil">
<input type="submit" value="Upload"></form>
</html>

Sådan der. Meget simpel version!
Avatar billede morten_21 Nybegynder
09. januar 2005 - 20:59 #7
Jep, kanon.

Jeg gjorde det jeg gemte $_FILES['fil']['name'] i en variabel, $filnavn, og efter uploaden gemte jeg billednavnet i db'en.

Tak for hjælpen, smid svar og få point :)
Avatar billede morten_21 Nybegynder
15. juli 2005 - 23:51 #8
-> legende.dk <- smid svar, så lukker vi :)
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