Avatar billede henrikgn Nybegynder
05. oktober 2004 - 11:39 Der er 6 kommentarer og
1 løsning

Upload af filer - problem med filnavne

Hej eksperter

Jeg har en lille asp.net-side, hvor vi i min læsegruppe kan uploade filer, som vi dermed kan dele med hinanden. Det vi typisk uploader til siden er Word-dokumenter og Excel-regneark.

Når man uploader en fil, ændres navnet på filen ikke - dvs. filen gemmes på serveren med samme navn som på computeren hos den der uploader. Når en person uploader en fil med et navn der indeholder et special-tegn, fx. æ,ø og å, men også &, mellemrum, apostroffer osv. opstår problemet. Den bliver fint uploadet, men kan ikke hentes ned igen.

Indtil videre har jeg løst problemet ved at lave "replace" af forskellige tegn, således den fjerner mellemrum, ændrer æ til ae osv. før filen uploades.

Er der ikke en bedre løsning til dette - fx. HtmlEncode eller lignende? Håber spørgsmålet er forståeligt - ellers uddyber jeg gerne.
Avatar billede henrikgn Nybegynder
05. oktober 2004 - 11:41 #1
Koden til at uploade filer er som følger:

Function Upload_fil()
    'Funktion til at uploade filen til serveren
   
        strFil = (txtFil.PostedFile.FileName)
   
    'Replacealgoritme til problemer:
    strFil = (Replace(strFil," ", ""))
    strFil = (Replace(strFil,"æ", "ae"))
    strFil = (Replace(strFil,"ø", "oe"))
    strFil = (Replace(strFil,"å", "aa"))
    strFil = (Replace(strFil,"Æ", "Ae"))
    strFil = (Replace(strFil,"Ø", "Oe"))
    strFil = (Replace(strFil,"Å", "Aa"))
   
    strFil = (strFil.SubString((strFil.LastIndexOf("\")),strFil.Length-strFil.LastIndexOf("\")))
    strSti = (Server.MapPath("filer")) & strFil
    Try
        txtFil.PostedFile.SaveAs(strSti)
        lblInfo.Text = ("<font color='darkgreen'>Filen er uploadet!</font>")
    Catch ex as exception
        lblInfo.text += ("Filen kunne ikke uploades! " & ex.ToString)
    End Try
End Function
Avatar billede erikjacobsen Ekspert
05. oktober 2004 - 11:54 #2
Det navn filen gemmes under kan jo sådan set være hvad som helst. Det jeg gør
i en nogenlunde lignende sammenhæng er at gemme det oprindelige navn i et felt
i den tabel i en database, sammen med det unikke, lidt tilfældige navn, som filen
ligger med på serveren.
Avatar billede henrikgn Nybegynder
05. oktober 2004 - 12:07 #3
Okay - jeg overvejer at gøre det samme - blot med en xml-fil i stedet for en database. Men jeg vil jo gerne have at filen får sit oprindelige navn tilbage når denne downloades igen... Hvordan sikrer jeg det?
Avatar billede ddobbeltv Nybegynder
05. oktober 2004 - 12:37 #4
kan man ikke bare Server.HtmlEncode i dette tilfælde ?
Avatar billede henrikgn Nybegynder
05. oktober 2004 - 13:06 #5
Det er det jeg er i tvivl om, hvordan jeg kan gøre...

strFil er jo det lokale filnavn før filen uploades. Kan jeg så bare gøre dette:

strFil = Server.HtmlEncode(strFil)

...og så uploade filen?

Hvad så når den skal downloades igen... så skal filnavnet jo helst være "normalt" igen...
Avatar billede midas_dk Nybegynder
08. oktober 2004 - 15:47 #6
Server.HTMLDecode(strFil)

???
Avatar billede henrikgn Nybegynder
07. december 2004 - 23:10 #7
Fik ikke dette til at virke.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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