/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
.txt fil kan læses på nettet
Fra : Jimmy


Dato : 03-12-01 16:11

Hej

Jeg laver på en ASP side en fil, som jeg vælger at kalde etellerandet.txt.
Derefter viser jeg et link til filen med det formål at man kan downloade
filen. Det der sker er, at hvis man blot trykker på filen, så er det filens
indhold der vises i browseren, og det er jo ikke så fedt.

Hvordan får jeg det lavet således at den automatisk downloader filen når der
klikkes på den?

Kan man evt få downloaden til at starte automatisk?

--


Mvh Jimmy



 
 
Jørn Andersen (04-12-2001)
Kommentar
Fra : Jørn Andersen


Dato : 04-12-01 10:50

On Mon, 3 Dec 2001 16:11:03 +0100, "Jimmy"
<pleasereplyingroup@hotmail.com> wrote:

>Jeg laver på en ASP side en fil, som jeg vælger at kalde etellerandet.txt.
>Derefter viser jeg et link til filen med det formål at man kan downloade
>filen. Det der sker er, at hvis man blot trykker på filen, så er det filens
>indhold der vises i browseren, og det er jo ikke så fedt.

Hvorfor ikke det?
Hvis brugeren klikker på et link, er det som regel for at få vist
indholdet :)

>Hvordan får jeg det lavet således at den automatisk downloader filen når der
>klikkes på den?

Det gør du ikke. I de fleste browsere skal man højreklikke for at
downloade. Og så må du enten stole på, at brugerne kender deres
browsers funktioner, eller skrive en lille vejledning på siden.

>Kan man evt få downloaden til at starte automatisk?

Det afhænger *helt* af, hvordan brugerne har indstillet deres
browsere, så lad være med at spekulere i det.


Good luck,
Jørn

--
Jørn Andersen
Brønshøj

Tony Fonager (04-12-2001)
Kommentar
Fra : Tony Fonager


Dato : 04-12-01 20:04

Du kan sagtens tvinge din browser til at downloade en .TXT fil - du skal
bare læse filen ind, ændre din "contenttype" til en type den ikke kender
eller som slet ikke findes, og deres udskrive indholdet af din tekstfil.

Så vil browseren automatisk poppe en "save as ..." dialog op.


-
Mvh
Tony Fonager

http://www.netcoders.dk - alt hvad du vil vide om Internet udvikling.

"Jørn Andersen" <jorn.a@email.dk> wrote in message
news:ds6p0uk34jdem06pgms9rs98n9q16t16me@4ax.com...
> On Mon, 3 Dec 2001 16:11:03 +0100, "Jimmy"
> <pleasereplyingroup@hotmail.com> wrote:
>
> >Jeg laver på en ASP side en fil, som jeg vælger at kalde
etellerandet.txt.
> >Derefter viser jeg et link til filen med det formål at man kan downloade
> >filen. Det der sker er, at hvis man blot trykker på filen, så er det
filens
> >indhold der vises i browseren, og det er jo ikke så fedt.
>
> Hvorfor ikke det?
> Hvis brugeren klikker på et link, er det som regel for at få vist
> indholdet :)
>
> >Hvordan får jeg det lavet således at den automatisk downloader filen når
der
> >klikkes på den?
>
> Det gør du ikke. I de fleste browsere skal man højreklikke for at
> downloade. Og så må du enten stole på, at brugerne kender deres
> browsers funktioner, eller skrive en lille vejledning på siden.
>
> >Kan man evt få downloaden til at starte automatisk?
>
> Det afhænger *helt* af, hvordan brugerne har indstillet deres
> browsere, så lad være med at spekulere i det.
>
>
> Good luck,
> Jørn
>
> --
> Jørn Andersen
> Brønshøj



Jesper Stocholm (04-12-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 04-12-01 20:21

Tony Fonager wrote in
news:3c0d1e07$0$29620$edfadb0f@dspool01.news.tele.dk:

> Du kan sagtens tvinge din browser til at downloade en .TXT fil - du
> skal bare læse filen ind, ændre din "contenttype" til en type den ikke
> kender eller som slet ikke findes, og deres udskrive indholdet af din
> tekstfil.
>
> Så vil browseren automatisk poppe en "save as ..." dialog op.
>

og hvis Jimmy ikke ved hvordan, så kan han jo kigge her:

http://groups.google.com/groups?hl=en&th=8984a65368eb5469&seekm=9qqe47%2489j%241%40news.cybercity.dk&frame=off



--
Jesper Stocholm - http://stocholm.dk

Gad vide hvor lang tid der går, inden danskerne
finder ud af, at de har købt katten i sækken til valget ...

Jimmy (05-12-2001)
Kommentar
Fra : Jimmy


Dato : 05-12-01 20:48

> > Du kan sagtens tvinge din browser til at downloade en .TXT fil - du
> > skal bare læse filen ind, ændre din "contenttype" til en type den ikke
> > kender eller som slet ikke findes, og deres udskrive indholdet af din
> > tekstfil.
> >
> > Så vil browseren automatisk poppe en "save as ..." dialog op.

Det virker, fedt!

> og hvis Jimmy ikke ved hvordan, så kan han jo kigge her:
>
>
http://groups.google.com/groups?hl=en&th=8984a65368eb5469&seekm=9qqe47%2489j
%241%40news.cybercity.dk&frame=off

Tak for linket :)

Der er et problem med det her, og det er at jeg ikke kan vise noget på
skærmen til min bruger efter dette således at brugeren kan klikke videre.

Jeg bruger følgende kode, og i den fil jeg downloader ligger først
tekstfilen, og derefter mit html. Hvordan løser jeg det problem?:

<%@ LANGUAGE="VBSCRIPT" %>
<%
response.contenttype = "application/x-msdownload"
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open

file = request.querystring("file")
oStream.LoadFromFile (server.mappath(file))

Response.AddHeader "content-disposition", "attachment; filename=" & file
response.BinaryWrite oStream.Read

oStream.Close
set oStream = nothing
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">

</body>
</html>

Mvh Jimmy



Jesper Stocholm (06-12-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 06-12-01 13:23

Jimmy wrote in news:3c0e79c3$0$7907$edfadb0f@dspool01.news.tele.dk:

> Det virker, fedt!
>
>> og hvis Jimmy ikke ved hvordan, så kan han jo kigge her:
>>
> http://groups.google.com/groups?hl=en&th=8984a65368eb5469&seekm=9qqe47%2
> 489j %241%40news.cybercity.dk&frame=off
>
> Tak for linket :)
>
> Der er et problem med det her, og det er at jeg ikke kan vise noget på
> skærmen til min bruger efter dette således at brugeren kan klikke
> videre.

det er "behaviour by design"

>
> Jeg bruger følgende kode, og i den fil jeg downloader ligger først
> tekstfilen, og derefter mit html. Hvordan løser jeg det problem?:
>
> <html>
> [html-kode]
> </html>
>

øeh ... ødelægger du ikke de filer du downloader med denne konstruktion ?
Din HTML-kode vil jo - tror jeg - blive opfattet af browseren som en del af
den fil du downloader.

Jeg ville slette din HTML-kode og udelukkende bruge ASP-koden. Derefter tror
jeg, at du kan løse dit problem ved at viderestille til en ny fil, hvor du
så kan fortælle dine brugere hvad du har lyst til. Du bør også gøre dette i
din ASP-kode. Prøv at søge i denne gruppe på google efter
"response.addheader" ... den bør give dig noget brugbart.

--
Jesper Stocholm - http://stocholm.dk

Gad vide hvor lang tid der går, inden danskerne
finder ud af, at de har købt katten i sækken til valget ...

Jimmy (06-12-2001)
Kommentar
Fra : Jimmy


Dato : 06-12-01 17:45

Hej

> > Jeg bruger følgende kode, og i den fil jeg downloader ligger først
> > tekstfilen, og derefter mit html. Hvordan løser jeg det problem?:
> >
> > <html>
> > [html-kode]
> > </html>
> >
>
> øeh ... ødelægger du ikke de filer du downloader med denne konstruktion ?
> Din HTML-kode vil jo - tror jeg - blive opfattet af browseren som en del
af
> den fil du downloader.

Jo, det er korrekt. Alt hvad der burde blive skrevet til browseren bliver
skrevet i .txt filen i stedet. Ikke godt!

> Jeg ville slette din HTML-kode og udelukkende bruge ASP-koden. Derefter
tror
> jeg, at du kan løse dit problem ved at viderestille til en ny fil, hvor du
> så kan fortælle dine brugere hvad du har lyst til. Du bør også gøre dette
i
> din ASP-kode.

Jeg har prøvet at køre denne kode udelukkende i et nyt dokument med den
intention at redirecte til en ny asp fil når downloaden var overstået. I
Filen som gererer downloaden står følgende:

<%@ LANGUAGE="VBSCRIPT" %>
<%
response.contenttype = "application/x-msdownload"
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open

file = request.querystring("file")
oStream.LoadFromFile (server.mappath(file))

Response.AddHeader "content-disposition", "attachment; filename=" & file
response.BinaryWrite oStream.Read

oStream.Close
set oStream = nothing
url = "et eller andet link"
Response.Redirect url
%>

Eneste problem er at jeg kan ikke redirecte efter at jeg har skrevet til
browseren hvilket jeg gør i denne linie:

response.BinaryWrite oStream.Read

At redirecte før den linie vil ikke give mig en blank fil på client siden.
Så mit problem med den løsning er at jeg ikke kan komme til at redirecte!
Hvad kan jeg gøre?

En anden ting i forbindelse med dette er at hvis jeg nøjes med at lave min
BinaryWrite, så er der jo egentligt ikke skrevet noget ud til browseren
endnu. I min browser sker der det at jeg får lov til at downloade filen som
jeg vil, men den bliver stående på den forrige asp side (der hvor jeg
trickede downloaden). Dette virker fint. Brugerne kan stadig trykke på alle
de knapper de kunne før, og filen bliver downloadet. På denne måde kan
brugerne komme videre derfra, men vil det altid virke således?

Det løser selvfølgelig ikke mit problem med ikke at kunne fortælle brugerne
om det er gået godt eller dårligt, men hvis de får downloadet filen må man
vel forudsætte at det er gået godt, hehe...

> Prøv at søge i denne gruppe på google efter
> "response.addheader" ... den bør give dig noget brugbart.

Jeg har brugt hele dagen i dag på at kunne finde noget brugbart. Der var da
også nogle ting jeg kunne bruge. Bare ikke lige i forbindelse med mit
problem.

1. Jeg kan forstå at der er en bug i IE5.5 SP1, men den skulle jeg ikke have
da jeg kører med SP2. Desuden får jeg også det rigtige output med i min fil
(+ diverse HTML) i modsætning til dem der har dette problem.
2. For nogen virkede det at skifte ordet "attachment" ud med ordet "inline".
Det resulterede for mig blot i at jeg fik hele outputtet skrevet til
browseren. Jeg kunne på andre indlæg forstå at det var fordi at inline sådan
set er den måde browseren default er sat op.
3. Jeg har prøvet at rode med at cutte downloaden når den egentlige
filstørrelse (CONTENT-LENGTH) er nået. Dette virker ikke.
4. Derudover havde de fleste det problem at det var asp siden der stod til
download og ikke deres .txt fil (eller hvad det nu var for en fil). Dette
problem har jeg også, men når man trykker gem på disken (radio knap) og
derefter ok, var det den rigtige fil der stod alligevel.
5. En anden sjov ting som der var en der havde var at når han trykkede kør
fra filens placering og trykkede ok, så kom der bare en ny save as dialog
frem. Det problem har jeg også, og anden gang skriver den sjovt nok også
filnavnet rigtigt begge steder. Uanset om man henter filen første eller
anden gang er det dog samme indhold.

Indtil videre tak for hjælpen, og jeg håber at du vil svare på de spørgsmål
jeg her har også.


Mvh Jimmy



Jesper Stocholm (06-12-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 06-12-01 21:45

Jimmy wrote in news:3c0fa05f$0$29597$edfadb0f@dspool01.news.tele.dk:

>
>> Jeg ville slette din HTML-kode og udelukkende bruge ASP-koden.
>> Derefter tror jeg, at du kan løse dit problem ved at viderestille til
>> en ny fil, hvor du så kan fortælle dine brugere hvad du har lyst til.
>> Du bør også gøre dette i din ASP-kode.
>
> Jeg har prøvet at køre denne kode udelukkende i et nyt dokument med den
> intention at redirecte til en ny asp fil når downloaden var overstået.
> I Filen som gererer downloaden står følgende:
>
> <%@ LANGUAGE="VBSCRIPT" %>
> <%
> response.contenttype = "application/x-msdownload"
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
>
> file = request.querystring("file")
> oStream.LoadFromFile (server.mappath(file))
>
> Response.AddHeader "content-disposition", "attachment; filename=" & file
> response.BinaryWrite oStream.Read
>
> oStream.Close
> set oStream = nothing
> url = "et eller andet link"
> Response.Redirect url
> %>

hvem har snakket om response.redirect ?

:)

>
> En anden ting i forbindelse med dette er at hvis jeg nøjes med at lave
> min BinaryWrite, så er der jo egentligt ikke skrevet noget ud til
> browseren endnu. I min browser sker der det at jeg får lov til at
> downloade filen som jeg vil, men den bliver stående på den forrige asp
> side (der hvor jeg trickede downloaden). Dette virker fint. Brugerne
> kan stadig trykke på alle de knapper de kunne før, og filen bliver
> downloadet. På denne måde kan brugerne komme videre derfra, men vil det
> altid virke således?
>

mjaeh ... det er ikke 100% konsistent ... men jeg har for nylig testet
oventående kode i NN4x,NN6x,Opera 5/6x og IE ... og den eneste
der umiddelbart var problemer med var Opera, der ikke ville
downloade .txt-filer som jeg bad den.

> Det løser selvfølgelig ikke mit problem med ikke at kunne fortælle
> brugerne om det er gået godt eller dårligt, men hvis de får downloadet
> filen må man vel forudsætte at det er gået godt, hehe...
>
>> Prøv at søge i denne gruppe på google efter "response.addheader" ...
>> den bør give dig noget brugbart.
>
> Jeg har brugt hele dagen i dag på at kunne finde noget brugbart. Der
> var da også nogle ting jeg kunne bruge. Bare ikke lige i forbindelse
> med mit problem.
>

?

Da jeg søgte kom der - pudsigt nok - et indlæg jeg selv har skrevet

http://groups.google.com/groups?q=response.addheader&hl=en&btnG=Google+Search&meta=group%3Ddk.edb.internet.webdesign.serverside.asp

Jeg vil tro, at hvis du laver en af de første linier til at være

strURL = "http://stocholm.dk"
response.addheader "Refresh", "10;URL=" & strURL
' og så resten af din kode herunder

Så vil den redirecte hen til mit website under download

> 1. Jeg kan forstå at der er en bug i IE5.5 SP1, men den skulle jeg ikke
> have da jeg kører med SP2. Desuden får jeg også det rigtige output med
> i min fil (+ diverse HTML) i modsætning til dem der har dette problem.

som jeg sagde: fjern HTML-koden.

> 2. For nogen virkede det at skifte ordet "attachment" ud med ordet
> "inline". Det resulterede for mig blot i at jeg fik hele outputtet
> skrevet til browseren. Jeg kunne på andre indlæg forstå at det var
> fordi at inline sådan set er den måde browseren default er sat op.

med lidt røde ører, så har jeg lige kigget i den kode, som jeg bruger
på et ar mine websites. Den er også med "inline" i stedet for
attachment.

Koden i ren c/p er:

<%
strFileName = aPath(ubound(aPath))
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open
oStream.LoadFromFile (strFilePath)
response.ContentType = "x-msdownload"
response.Addheader "Content-Disposition", "inline; filename=" & strFileName
response.BinaryWrite oStream.Read
oStream.Close
set oStream = nothing
%>

> 4. Derudover havde de fleste det problem at det var asp siden der stod
> til download og ikke deres .txt fil (eller hvad det nu var for en fil).
> Dette problem har jeg også, men når man trykker gem på disken (radio
> knap) og derefter ok, var det den rigtige fil der stod alligevel.

Det forstår jeg slet ikke ... hvilken radioknap ?

> 5. En anden sjov ting som der var en der havde var at når han trykkede
> kør fra filens placering og trykkede ok, så kom der bare en ny save as
> dialog frem. Det problem har jeg også, og anden gang skriver den sjovt
> nok også filnavnet rigtigt begge steder. Uanset om man henter filen
> første eller anden gang er det dog samme indhold.
>

Jeg er lidt usikker på, hvorfor dine brugere får de resultater du
beskriver. Det er vigtigt at huske på, at du kan fortælle browsere
det du ønsker ... dvs hvilke headers, der sendes fra serveren. Optimalt
skulle du kunne bestemme browserens opførsel via headers, men desværre
er det ikke altid, at browserne kun ser på dette. Ofte vil de også
kigge på, hvad den fil du giver den hedder ... og specielt extension.
Derfor kan det være lidt en balancegang at få det ønskede resultat. Fx
kan det nogle gange hjælpe at sætte content-type til octet-stream i stedet
for application/x-msdownload.

> Indtil videre tak for hjælpen, og jeg håber at du vil svare på de
> spørgsmål jeg her har også.
>

vi prøver ... og tager det lidt af vejen ... :)

--
Jesper Stocholm - http://stocholm.dk

Gad vide hvor lang tid der går, inden danskerne
finder ud af, at de har købt katten i sækken til valget ...

Jimmy (11-12-2001)
Kommentar
Fra : Jimmy


Dato : 11-12-01 21:06

Hej Jesper

Jeg undskylder at jeg ikke har kigget på dit svar endnu, men har haft
sindsygt travlt. Jeg går det lige grundigt igennem snarest.

Indtil videre er jeg meget taknemmelig for hjælpen.


Mvh Jimmy

"Jesper Stocholm" <spam200112@stocholm.dk> skrev i en meddelelse
news:Xns916FDD52A780Cspamstocholmdk@192.38.208.81...
> Jimmy wrote in news:3c0fa05f$0$29597$edfadb0f@dspool01.news.tele.dk:
>
> >
> >> Jeg ville slette din HTML-kode og udelukkende bruge ASP-koden.
> >> Derefter tror jeg, at du kan løse dit problem ved at viderestille til
> >> en ny fil, hvor du så kan fortælle dine brugere hvad du har lyst til.
> >> Du bør også gøre dette i din ASP-kode.
> >
> > Jeg har prøvet at køre denne kode udelukkende i et nyt dokument med den
> > intention at redirecte til en ny asp fil når downloaden var overstået.
> > I Filen som gererer downloaden står følgende:
> >
> > <%@ LANGUAGE="VBSCRIPT" %>
> > <%
> > response.contenttype = "application/x-msdownload"
> > set oStream = server.createobject("ADODB.Stream")
> > oStream.Type = 1 'adTypeBinary
> > oStream.Open
> >
> > file = request.querystring("file")
> > oStream.LoadFromFile (server.mappath(file))
> >
> > Response.AddHeader "content-disposition", "attachment; filename=" &
file
> > response.BinaryWrite oStream.Read
> >
> > oStream.Close
> > set oStream = nothing
> > url = "et eller andet link"
> > Response.Redirect url
> > %>
>
> hvem har snakket om response.redirect ?
>
> :)
>
> >
> > En anden ting i forbindelse med dette er at hvis jeg nøjes med at lave
> > min BinaryWrite, så er der jo egentligt ikke skrevet noget ud til
> > browseren endnu. I min browser sker der det at jeg får lov til at
> > downloade filen som jeg vil, men den bliver stående på den forrige asp
> > side (der hvor jeg trickede downloaden). Dette virker fint. Brugerne
> > kan stadig trykke på alle de knapper de kunne før, og filen bliver
> > downloadet. På denne måde kan brugerne komme videre derfra, men vil det
> > altid virke således?
> >
>
> mjaeh ... det er ikke 100% konsistent ... men jeg har for nylig testet
> oventående kode i NN4x,NN6x,Opera 5/6x og IE ... og den eneste
> der umiddelbart var problemer med var Opera, der ikke ville
> downloade .txt-filer som jeg bad den.
>
> > Det løser selvfølgelig ikke mit problem med ikke at kunne fortælle
> > brugerne om det er gået godt eller dårligt, men hvis de får downloadet
> > filen må man vel forudsætte at det er gået godt, hehe...
> >
> >> Prøv at søge i denne gruppe på google efter "response.addheader" ...
> >> den bør give dig noget brugbart.
> >
> > Jeg har brugt hele dagen i dag på at kunne finde noget brugbart. Der
> > var da også nogle ting jeg kunne bruge. Bare ikke lige i forbindelse
> > med mit problem.
> >
>
> ?
>
> Da jeg søgte kom der - pudsigt nok - et indlæg jeg selv har skrevet
>
>
http://groups.google.com/groups?q=response.addheader&hl=en&btnG=Google+Searc
h&meta=group%3Ddk.edb.internet.webdesign.serverside.asp
>
> Jeg vil tro, at hvis du laver en af de første linier til at være
>
> strURL = "http://stocholm.dk"
> response.addheader "Refresh", "10;URL=" & strURL
> ' og så resten af din kode herunder
>
> Så vil den redirecte hen til mit website under download
>
> > 1. Jeg kan forstå at der er en bug i IE5.5 SP1, men den skulle jeg ikke
> > have da jeg kører med SP2. Desuden får jeg også det rigtige output med
> > i min fil (+ diverse HTML) i modsætning til dem der har dette problem.
>
> som jeg sagde: fjern HTML-koden.
>
> > 2. For nogen virkede det at skifte ordet "attachment" ud med ordet
> > "inline". Det resulterede for mig blot i at jeg fik hele outputtet
> > skrevet til browseren. Jeg kunne på andre indlæg forstå at det var
> > fordi at inline sådan set er den måde browseren default er sat op.
>
> med lidt røde ører, så har jeg lige kigget i den kode, som jeg bruger
> på et ar mine websites. Den er også med "inline" i stedet for
> attachment.
>
> Koden i ren c/p er:
>
> <%
> strFileName = aPath(ubound(aPath))
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
> oStream.LoadFromFile (strFilePath)
> response.ContentType = "x-msdownload"
> response.Addheader "Content-Disposition", "inline; filename=" &
strFileName
> response.BinaryWrite oStream.Read
> oStream.Close
> set oStream = nothing
> %>
>
> > 4. Derudover havde de fleste det problem at det var asp siden der stod
> > til download og ikke deres .txt fil (eller hvad det nu var for en fil).
> > Dette problem har jeg også, men når man trykker gem på disken (radio
> > knap) og derefter ok, var det den rigtige fil der stod alligevel.
>
> Det forstår jeg slet ikke ... hvilken radioknap ?
>
> > 5. En anden sjov ting som der var en der havde var at når han trykkede
> > kør fra filens placering og trykkede ok, så kom der bare en ny save as
> > dialog frem. Det problem har jeg også, og anden gang skriver den sjovt
> > nok også filnavnet rigtigt begge steder. Uanset om man henter filen
> > første eller anden gang er det dog samme indhold.
> >
>
> Jeg er lidt usikker på, hvorfor dine brugere får de resultater du
> beskriver. Det er vigtigt at huske på, at du kan fortælle browsere
> det du ønsker ... dvs hvilke headers, der sendes fra serveren. Optimalt
> skulle du kunne bestemme browserens opførsel via headers, men desværre
> er det ikke altid, at browserne kun ser på dette. Ofte vil de også
> kigge på, hvad den fil du giver den hedder ... og specielt extension.
> Derfor kan det være lidt en balancegang at få det ønskede resultat. Fx
> kan det nogle gange hjælpe at sætte content-type til octet-stream i stedet
> for application/x-msdownload.
>
> > Indtil videre tak for hjælpen, og jeg håber at du vil svare på de
> > spørgsmål jeg her har også.
> >
>
> vi prøver ... og tager det lidt af vejen ... :)
>
> --
> Jesper Stocholm - http://stocholm.dk
>
> Gad vide hvor lang tid der går, inden danskerne
> finder ud af, at de har købt katten i sækken til valget ...



Jimmy (12-12-2001)
Kommentar
Fra : Jimmy


Dato : 12-12-01 09:29

> "Jesper Stocholm" <spam200112@stocholm.dk> skrev i en meddelelse
> news:Xns916FDD52A780Cspamstocholmdk@192.38.208.81...
> >
> > hvem har snakket om response.redirect ?
> >
> > :)

Øhh... Ja, det er rigtigt. Det er der ingen der har andet end mig, hehe...

> > >
> > > En anden ting i forbindelse med dette er at hvis jeg nøjes med at lave
> > > min BinaryWrite, så er der jo egentligt ikke skrevet noget ud til
> > > browseren endnu. I min browser sker der det at jeg får lov til at
> > > downloade filen som jeg vil, men den bliver stående på den forrige asp
> > > side (der hvor jeg trickede downloaden). Dette virker fint. Brugerne
> > > kan stadig trykke på alle de knapper de kunne før, og filen bliver
> > > downloadet. På denne måde kan brugerne komme videre derfra, men vil
det
> > > altid virke således?
> > >
> >
> > mjaeh ... det er ikke 100% konsistent ... men jeg har for nylig testet
> > oventående kode i NN4x,NN6x,Opera 5/6x og IE ... og den eneste
> > der umiddelbart var problemer med var Opera, der ikke ville
> > downloade .txt-filer som jeg bad den.

Ok, målgruppen bruger alle IE, så det er til at leve med. Typisk at det
lige er .txt filer jeg har med at gøre. ;)

> > Jeg vil tro, at hvis du laver en af de første linier til at være
> >
> > strURL = "http://stocholm.dk"
> > response.addheader "Refresh", "10;URL=" & strURL
> > ' og så resten af din kode herunder
> >
> > Så vil den redirecte hen til mit website under download

Det gør den ikke. Kan det være fordi at den slet ikke downloader i mere end
knap et sekund?
Jeg kan godt se fidusen, og mår ærligt indrømme at jeg ikke forstår hvorfor
den ikke refresher?
Kan det være fordi at jeg har flere response.addheader linier i min kode?
Jeg vedlægger lige koden som den nu ser ud:

<%@ LANGUAGE="VBSCRIPT" %>
<%
strURL = "http://stocholm.dk"
response.addheader "Refresh", "2;URL=" & strURL

response.contenttype = "application/x-msdownload"
set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open

file = request.querystring("file")
oStream.LoadFromFile (server.mappath(file))

Response.AddHeader "content-disposition", "attachment; filename=" & file
response.BinaryWrite oStream.Read

oStream.Close
set oStream = nothing
%>

> > > 2. For nogen virkede det at skifte ordet "attachment" ud med ordet
> > > "inline". Det resulterede for mig blot i at jeg fik hele outputtet
> > > skrevet til browseren. Jeg kunne på andre indlæg forstå at det var
> > > fordi at inline sådan set er den måde browseren default er sat op.
> >
> > med lidt røde ører, så har jeg lige kigget i den kode, som jeg bruger
> > på et ar mine websites. Den er også med "inline" i stedet for
> > attachment.
> >
> > Koden i ren c/p er:
> >
> > <%
> > strFileName = aPath(ubound(aPath))
> > set oStream = server.createobject("ADODB.Stream")
> > oStream.Type = 1 'adTypeBinary
> > oStream.Open
> > oStream.LoadFromFile (strFilePath)
> > response.ContentType = "x-msdownload"
> > response.Addheader "Content-Disposition", "inline; filename=" &
> strFileName
> > response.BinaryWrite oStream.Read
> > oStream.Close
> > set oStream = nothing
> > %>

Ja det ser jo faretruende ens ud ;)
Hvis jeg sætter det til inline i min kode får jeg det altså stadigvæk
skrevet ud til browseren (filen.txt).

Men hvis jeg ændrer response.contenttype til den samme som din, så kan jeg
bruge inline, hvilket betyder at jeg kan få skrevet filnavnet rigtigt i
download dialogen. Så det bliver nok den jeg kommer til at køre med, men min
refresh kommer stadig ikke.

> > > 4. Derudover havde de fleste det problem at det var asp siden der stod
> > > til download og ikke deres .txt fil (eller hvad det nu var for en
fil).
> > > Dette problem har jeg også, men når man trykker gem på disken (radio
> > > knap) og derefter ok, var det den rigtige fil der stod alligevel.
> >
> > Det forstår jeg slet ikke ... hvilken radioknap ?
> >
> > > 5. En anden sjov ting som der var en der havde var at når han trykkede
> > > kør fra filens placering og trykkede ok, så kom der bare en ny save as
> > > dialog frem. Det problem har jeg også, og anden gang skriver den sjovt
> > > nok også filnavnet rigtigt begge steder. Uanset om man henter filen
> > > første eller anden gang er det dog samme indhold.


Nej, det gør jeg egentlig heller ikke når jeg lige læser det igen, men det
der nok skulle have stået var:
Den første dialog der kommer frem når man skal til at downloade, der er 2
radioknapper. Den ene er åben denne fil fra dens nuværende placering, og den
anden er gem filen på disken. Hvis man vælger den første kommer den bare
frem igen, og hvis du der vælger den første igen vises siden på skærmen, men
hvis du anden gang vælger den anden radioknap, så skriver den filnavnet
rigtigt i den efterfølgende dialog, hvor man vælger filens placering på
disken, hvilket den for øvrigt også gjorde hvis du valgte gem på disk første
gang. Det problem er løst med din kode hvor du sætter contenttype til
x-msdownload, og skifter ordet attachment ud med inline. Der vil du altid
kun blive spurgt en gang, og den skriver filnavnet rigtigt alle steder, hvor
den derimod før skrev din asp fil i den første dialog (den med
radioknapperne), men det rigtige filnavn i anden dialog (den med placering
af filen på disken). hm... kan godt se at det er formuleret lidt kringlet.

Hvorfor virker refreshen ikke?

Nå, men jeg er stadig dybt taknemmelig for din hjælp.


Mvh Jimmy



Jimmy (05-12-2001)
Kommentar
Fra : Jimmy


Dato : 05-12-01 15:34

> >Jeg laver på en ASP side en fil, som jeg vælger at kalde
etellerandet.txt.
> >Derefter viser jeg et link til filen med det formål at man kan downloade
> >filen. Det der sker er, at hvis man blot trykker på filen, så er det
filens
> >indhold der vises i browseren, og det er jo ikke så fedt.
>
> Hvorfor ikke det?

Fordi at filen skal ned på brugerens disk således at han kan importere den i
et andet program.

> Hvis brugeren klikker på et link, er det som regel for at få vist
> indholdet :)

ikke i dette tilfælde. Der ved brugeren allerede hvad indholdet er.

> >Kan man evt få downloaden til at starte automatisk?
>
> Det afhænger *helt* af, hvordan brugerne har indstillet deres
> browsere, så lad være med at spekulere i det.

Jeg har nu set det på Tucows, og der starter downloaden altid i de browsere
jeg har brugt, men jeg ved ikke om de har en eller anden form for
middleware?

> Good luck,
> Jørn

Tak



Tony Fonager (04-12-2001)
Kommentar
Fra : Tony Fonager


Dato : 04-12-01 20:04

Se mit svar længere nede i denne tråd ...

"Jimmy" <pleasereplyingroup@hotmail.com> wrote in message
news:3c0b95cd$0$25384$edfadb0f@dspool01.news.tele.dk...
>
> Hvordan får jeg det lavet således at den automatisk downloader filen når
der
> klikkes på den?




Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste