Avatar billede ircnoob Nybegynder
17. oktober 2007 - 10:39 Der er 7 kommentarer og
1 løsning

Filupload - beholde det originale filnavn

Hej,
jeg ønsker at holde fast i at gemme på filsystemet frem for db, men jeg mangler en løsning til, hvordan jeg kan give filerne det korrekte navn ved download. Tænkte på bare at omdøbe filerne på filsystemet til det ID, som de har i databasen(hvor også det korrekte filnavn er gemt).. men hvordan kan man så sende denne fil til download med det oprindelige filnavn?

og hvis det er fx en txt fil, kan man så godt tvinge browseren til at downloade filen, i stedet for blot at åbne den, hvis man klikker på download linket ?

tak
Avatar billede kalp Novice
17. oktober 2007 - 11:01 #1
Jeg går ud fra du ikke gider gemme i en database fordi det er dyrerere end, at gemme på harddisken.

Men det nemmeste vil være, at du i det mindste gemmer ID og filnavn i databasen, så du på den måde har registreret filen's korrekte navn et sted.

Det kan ikke betale sig, at gemme i en XML fil eller andet - så skal du tage højde for concurrency problem og dette er løst med databasen.
Avatar billede ircnoob Nybegynder
17. oktober 2007 - 11:06 #2
Hej,
det har jeg også gjort, som jeg har skrevet ovenfor, måske blot lidt dårligt formuleret :)

Men problemet er så hvordan jeg får filerne til at få det korrekte navn igen?
Avatar billede kalp Novice
17. oktober 2007 - 11:14 #3
Sådan uden at have gennemtænkt ideen - da jeg ikke renamer filer som du:)

men lav en mappe hvori du renamer fil og sender den derfra.. det er billeder så det tager ikke mange sekunder..

så kan du slette filen efterfølgende...

man skal nok lige tænkte lidt over hvad der sker hvis 2 brugere klikker på samme billede om det ikke vil konflikte.

men det er også dobbeltarbejde at rename en fil frem og tilbage:)

Det er nemmere hvis du opretter en mappe med billedeID og i den har dit billede med korrekt filnavn.
Avatar billede neoman Novice
17. oktober 2007 - 11:54 #4
Om at gennemtvinge at en txt fil dl'es fremfor åbnes..

En måde som virker er at skrive ens egen download ting : læse filen og spytte den ud via repsonse.write som f.eks. her:

        Response.Clear()
        Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.txt", fileName))
        Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252)

        Response.ContentType = "text/plain"

        Dim mything As New StringBuilder


'loop over denne linje mens du læser fra din fil
        mything.AppendLine("dennestringskalkommefradinfil")
'end loop


        Response.Write(mything)
        Response.Flush()

        Response.End()

kan være kalp kender en smartere metode
Avatar billede ircnoob Nybegynder
17. oktober 2007 - 11:55 #5
billeder ?
hvad gør du så, hvis du ikke renamer ? jeg kan ikke lige se, hvordan man ellers skal bevare det korrekte filnavn?
Avatar billede sherlock Nybegynder
17. oktober 2007 - 12:40 #6
Her er en meget grundig beskrivelse af, hvordan man serverer en fil til download gennem en stream (fra en fil, database eller dynamisk udfyldt) og tildeler den det navn,, man har lyst til.
Det er godt nok i VB, men der er vist under 10 linier. Til gengæld er der masser af dokumentation.

http://www.codeproject.com/aspnet/SecureFileDownload.asp
Avatar billede ircnoob Nybegynder
09. november 2007 - 07:30 #7
Det var kanon sherlock kan du smide et svar :D
Avatar billede sherlock Nybegynder
09. november 2007 - 09:31 #8
:)
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