Avatar billede w13 Novice
18. juni 2006 - 18:06 Der er 13 kommentarer og
1 løsning

Gemme billed fra computer på server under bestemt filnavn

Hej Eksperter..

Jeg er i gang med at programmere et oprettelsessystem for brugere, hvortil jeg står og mangler en kode, som gemmer et billed (fra en bestemt sti på computeren) under et bestemt filnavn på serveren.

Jeg har én kode, som kan gemme et billed, men denne gemmer som det oprindelige filnavn - og virker slet ikke når andre form-data overføres.

Nogen som kan hjælpe med dette?
Vh. W13
---------------------------
Den gamle kode til billedupload var:

Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save "serversti"
Avatar billede tofte Juniormester
18. juni 2006 - 21:14 #1
Hej

Jeg er ikke helt med på hele problemet.

Efter at du har uploadet dine filer med Upload.Save, kan du omdøbe filerne til hvad de skal hedde. Det er måden at gøre det på.

Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save(Server.MapPath("./minMappe/"))
a=1
For Each File in Upload.Files 
    File.Move  Server.MapPath("./brugere/andetNavnTilFil"&a&".jpg"
    a=a+1
Next

Du kan nemt sende filer og tekst på en gang, det er bare vigtigt at du bruger den rigtige enctype:
<FORM NAME="MyForm" METHOD="POST" ENCTYPE="multipart/form-data" ACTION="upload1.asp">

nu kan du så filføje et antal bokse til at udpege filer og bokse til lidt tekst. Du tilgår felterne som ikke er filer ved at kalde Upload.Form("navnPåFeltet") det er vigtigt at du først bruger Upload.From efter du har kaldt Upload.Save, da de ellers er tomme.

Håber det har hjulpet, ellers må du lige besrive dit problem lidt mere.

Rasmus
Avatar billede w13 Novice
18. juni 2006 - 22:35 #2
Hej Rasmus..

Koden virker tilsyneladende upåklageligt =D
Har dog nu lige et tillægsspørgsmål, idet det går op for mig, at koden giver fejl, hvis der allerede eksisterer et billed med dét filnavn.

Kan du hjælpe med en lille kodestump, som løser dette evt. ved bare at overskrive det gamle billed med det nye?
Avatar billede w13 Novice
18. juni 2006 - 22:40 #3
Du får naturligvis point uanset hvad, men har bare virkelig brug for denne funktion for at koden tjener sit formål.. =)
Avatar billede tofte Juniormester
19. juni 2006 - 00:45 #4
Det er helt i orden. Jeg mener ikke der er en pæn måde at gøre det på, men du kan bare slette filen inden hvis den findes, til dette kan du bruge FSO:

Set filesys = CreateObject("Scripting.FileSystemObject")
if filesys.FileExists Server.MapPath("./brugere/andetNavnTilFil"&a&".jpg"
then
  filesys.DeleteFile Server.MapPath("./brugere/andetNavnTilFil"&a&".jpg"

end if
Avatar billede tofte Juniormester
19. juni 2006 - 00:45 #5
og her kom der et svar hvis ud kunne bruge det til noget.
Avatar billede w13 Novice
19. juni 2006 - 08:55 #6
Nu har jeg prøvet at placere koden forskellige steder, men jeg får altid samme fejlbesked: "Invalid Path! The Path parameter for the MapPath method must be a virtual path. A physical path was used."

Og min "path" er ellers "C:\webs\talkactive\web7900\sidensnavn.dk\upload\user\femuser\26.jpg" som plejer at virke...
----------------------------------------------------
Set Upload = Server.CreateObject("Persits.Upload.1")
Set filesys = CreateObject("Scripting.FileSystemObject")
Upload.Save(Server.MapPath(strSitePath & "\upload\user\femuser\temp"))
For Each File in Upload.Files
If filesys.FileExists(Server.MapPath(strSitePath & "\upload\user\femuser\" & Request.Querystring("user") & ".jpg")) Then
  filesys.DeleteFile(Server.MapPath(strSitePath & "\upload\user\femuser\" & Request.Querystring("user") & ".jpg"))
End If
File.Move Server.MapPath(strSitePath & "\upload\user\femuser\" & Request.Querystring("user") & ".jpg")
Next
Avatar billede w13 Novice
19. juni 2006 - 09:06 #7
Hmmm.. Det viser sig nu, at det ikke er den nye kode, der skaber problemer, men den gamle upload-kode, som ellers virkede i går.. =S
Avatar billede w13 Novice
19. juni 2006 - 12:10 #8
Hvordan kan det mon være, den pludselig ikke virker mere!? =O
Avatar billede tofte Juniormester
19. juni 2006 - 21:40 #9
det er svært at vide, når jeg ikke kender koden. Men hvis du lige poster den, og fortæller hvad der er galt, så kan det måske løses.
Avatar billede w13 Novice
19. juni 2006 - 23:21 #10
Ja, altså, det virker meget underligt..

Lige pludselig holdt stien til placeringen på serveren op med at virke.. Den virker ingen steder når brugt sammen med Server.MapPath o.lign.. Siger bare "Invalid Path! The Path parameter for the MapPath method must be a virtual path. A physical path was used."
Avatar billede tofte Juniormester
20. juni 2006 - 09:22 #11
hvad er strSitePath  sat til?
Avatar billede w13 Novice
20. juni 2006 - 12:23 #12
Den er sat til "C:\webs\talkactive\web7910\danlube.2biaz.dk"
Avatar billede tofte Juniormester
20. juni 2006 - 16:33 #13
det er der problemet er, du ikke bruge server.mappath(".....") når du angiver den absolutte sti, du kan kun bruge server.mappath hvis du har en relativ sti eks ../minMappe/minUndermappe så vil server.mappath give dig C:\....\minMappe\minUndermappe. Hvis du vil bruge den absolutte sti, skal du bare sætte strSitePath som du har gjort og så ændre / til \ og ikke bruge server.Mappath
Avatar billede w13 Novice
20. juni 2006 - 19:38 #14
Ok, nu virker det fint, tak =)
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
Kurser inden for grundlæggende programmering

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