18. juni 2006 - 18:06Der 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"
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.
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?
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"
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
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."
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
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.