/ 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
Beskyt pdf fil mod download ?
Fra : Magnus


Dato : 08-07-01 16:23

Er der nogen der kender til en måde hvor besøgende kan downloade en pdf fil
uden at de kan se hvor den ligger.

Det er en fil som kun kan hentes fra en som er beskyttet med password men
når filen fx hentes ind i browseren så står adressen til hvor den ligger og
har man den så kan man snyde password beskyttelsen.
Kan man beskytte filen mod download eller undgå at den bliver åbnet i
browseren så adresselinien er synlig.

/Magnus



 
 
Christian Estrup (08-07-2001)
Kommentar
Fra : Christian Estrup


Dato : 08-07-01 22:53

Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti, evt.
også med et meget underligt filnavn - og derefter sende den til brugeren med
et 'dynamisk' filnavn. Fx:

**********

set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open

arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))

response.ContentType = "application/pdf"
response.Addheader "Content-Disposition", "inline; filename=svendotto.pdf"
'Dette er det 'filnavn', brugeren ser...
response.BinaryWrite oStream.Read

oStream.Close
set oStream = nothing

**********

- og inden du sender brugeren noget som helst, checker du så bare liiige, at
han også er logget ind :)

- Chr


"Magnus" <arnason@email.dk> wrote in message
news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
fil
> uden at de kan se hvor den ligger.
>
> Det er en fil som kun kan hentes fra en som er beskyttet med password men
> når filen fx hentes ind i browseren så står adressen til hvor den ligger
og
> har man den så kan man snyde password beskyttelsen.
> Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> browseren så adresselinien er synlig.
>
> /Magnus
>
>



Christian Estrup (08-07-2001)
Kommentar
Fra : Christian Estrup


Dato : 08-07-01 22:54

Whoops - 'arr =' er ikke nødvendigt, sorry...

"Christian Estrup" <cestrup@estrup-online.dk> wrote in message
news:ty427.926$6x5.111256@news000.worldonline.dk...
> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti,
evt.
> også med et meget underligt filnavn - og derefter sende den til brugeren
med
> et 'dynamisk' filnavn. Fx:
>
> **********
>
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
>
> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>
> response.ContentType = "application/pdf"
> response.Addheader "Content-Disposition", "inline;
filename=svendotto.pdf"
> 'Dette er det 'filnavn', brugeren ser...
> response.BinaryWrite oStream.Read
>
> oStream.Close
> set oStream = nothing
>
> **********
>
> - og inden du sender brugeren noget som helst, checker du så bare liiige,
at
> han også er logget ind :)
>
> - Chr
>
>
> "Magnus" <arnason@email.dk> wrote in message
> news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> > Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
> fil
> > uden at de kan se hvor den ligger.
> >
> > Det er en fil som kun kan hentes fra en som er beskyttet med password
men
> > når filen fx hentes ind i browseren så står adressen til hvor den ligger
> og
> > har man den så kan man snyde password beskyttelsen.
> > Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> > browseren så adresselinien er synlig.
> >
> > /Magnus
> >
> >
>
>



Dcasso (10-07-2001)
Kommentar
Fra : Dcasso


Dato : 10-07-01 18:31

Hej

Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren

Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
som følgende)

<%
   
Filnavn = RSTitler("DL")

Const adTypeBinary = 1

strFilePath = "D:\home\\" & Filnavn

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile strFilePath

Select Case lcase(Right(Filnavn, 3))   
   Case "gif"
      Response.ContentType = "image/gif"
   Case "jpg"
      Response.ContentType = "image/jpeg"
   Case "zip"
      Response.ContentType = "application/x-tar"
   Case "pdf"
      Response.ContentType = "application/pdf"
end Select

Response.AddHeader "content-disposition","attachment; filename=" &
strFilePath

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing

%>

Har du nogle gode ideer?

Mvh
Dcasso

On Sun, 8 Jul 2001 23:54:19 +0200, "Christian Estrup"
<cestrup@estrup-online.dk> wrote:

>Whoops - 'arr =' er ikke nødvendigt, sorry...
>
>"Christian Estrup" <cestrup@estrup-online.dk> wrote in message
>news:ty427.926$6x5.111256@news000.worldonline.dk...
>> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti,
>evt.
>> også med et meget underligt filnavn - og derefter sende den til brugeren
>med
>> et 'dynamisk' filnavn. Fx:
>>
>> **********
>>
>> set oStream = server.createobject("ADODB.Stream")
>> oStream.Type = 1 'adTypeBinary
>> oStream.Open
>>
>> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>>
>> response.ContentType = "application/pdf"
>> response.Addheader "Content-Disposition", "inline;
>filename=svendotto.pdf"
>> 'Dette er det 'filnavn', brugeren ser...
>> response.BinaryWrite oStream.Read
>>
>> oStream.Close
>> set oStream = nothing
>>
>> **********
>>
>> - og inden du sender brugeren noget som helst, checker du så bare liiige,
>at
>> han også er logget ind :)
>>
>> - Chr
>>
>>
>> "Magnus" <arnason@email.dk> wrote in message
>> news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
>> > Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
>> fil
>> > uden at de kan se hvor den ligger.
>> >
>> > Det er en fil som kun kan hentes fra en som er beskyttet med password
>men
>> > når filen fx hentes ind i browseren så står adressen til hvor den ligger
>> og
>> > har man den så kan man snyde password beskyttelsen.
>> > Kan man beskytte filen mod download eller undgå at den bliver åbnet i
>> > browseren så adresselinien er synlig.
>> >
>> > /Magnus
>> >
>> >
>>
>>
>


Jesper Stocholm (10-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 10-07-01 19:11

Dcasso <dcasso@usa.net> wrote in
news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:

> Hej
>
> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>
> Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
> som følgende)
>
> <%
>
> Filnavn = RSTitler("DL")
>
> Const adTypeBinary = 1
>
> strFilePath = "D:\home\\" & Filnavn
>
> Set objStream = Server.CreateObject("ADODB.Stream")
>
> objStream.Type = adTypeBinary
> objStream.Open
> objStream.LoadFromFile strFilePath
>
> Select Case lcase(Right(Filnavn, 3))
> Case "gif"
> Response.ContentType = "image/gif"
> Case "jpg"
> Response.ContentType = "image/jpeg"
> Case "zip"
> Response.ContentType = "application/x-tar"
> Case "pdf"
> Response.ContentType = "application/pdf"
> end Select

men det er jo "klart". Din browser får jo at vide, at det er en .PDF-fil,
som den er ved at hente - og derfor aktiveres den plug-in, der er
installeret i din browser.

Hvis du i stedet skriver

response.contenttype = "application/octet-stream

skulle det virke.

Jeg har anvendt dette på http://stocholm.dk/pmp/downloads/download.asp?
file=main.pdf , hvor du kan se det virke. Jeg har testet det med IE6,
NN4.7,NN6.1 og Opera 5.11 og siden opfører sig som det ønskede i alle disse
browsere.

Dokumentet fylder +700Kb (i tilfælde du vil hente hele dokumentet)


--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

Dcasso (10-07-2001)
Kommentar
Fra : Dcasso


Dato : 10-07-01 20:14

On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
<spam@stocholm.dk> wrote:

>Dcasso <dcasso@usa.net> wrote in
>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>
>> Hej
>>
>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>
>> Den kode (som jo praktisk taget er en næsten tro kopi af dit ser ud
>> som følgende)
>>
>> <%
>>
>> Filnavn = RSTitler("DL")
>>
>> Const adTypeBinary = 1
>>
>> strFilePath = "D:\home\\" & Filnavn
>>
>> Set objStream = Server.CreateObject("ADODB.Stream")
>>
>> objStream.Type = adTypeBinary
>> objStream.Open
>> objStream.LoadFromFile strFilePath
>>
>> Select Case lcase(Right(Filnavn, 3))
>> Case "gif"
>> Response.ContentType = "image/gif"
>> Case "jpg"
>> Response.ContentType = "image/jpeg"
>> Case "zip"
>> Response.ContentType = "application/x-tar"
>> Case "pdf"
>> Response.ContentType = "application/pdf"
>> end Select
>
>men det er jo "klart". Din browser får jo at vide, at det er en .PDF-fil,
>som den er ved at hente - og derfor aktiveres den plug-in, der er
>installeret i din browser.
>
>Hvis du i stedet skriver
>
>response.contenttype = "application/octet-stream
>
>skulle det virke.

Takker!

Det virkede

Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
så et mere passende navn i save as - boksen.

Jesper Stocholm (10-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 10-07-01 20:13

Dcasso <dcasso@usa.net> wrote in
news:otkmkt0i1ifggk476vb2l2qvkd1tc3b0ji@4ax.com:

> On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
> <spam@stocholm.dk> wrote:
>>Dcasso <dcasso@usa.net> wrote in
>>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>>> Hej
>>>
>>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>>
>>> Case "pdf"
>>> Response.ContentType = "application/pdf" end Select
>>
[snip]
>>
>>Hvis du i stedet skriver
>>
>>response.contenttype = "application/octet-stream
>>
>>skulle det virke.
>
> Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
> så et mere passende navn i save as - boksen.
>

I mine browsere beder den da om at gemme med det rigtige navn. Har du husket
linien

response.Addheader "Content-Disposition", "inline;
filename=somefilenamedotpdf"

?

--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

Dcasso (10-07-2001)
Kommentar
Fra : Dcasso


Dato : 10-07-01 22:09

Ja, men den skriver filnavnet på den asp-fil hvori jeg udfører koden
til at hente pdf-filen og altså ikke pdf-filens navn.

On Tue, 10 Jul 2001 19:12:51 +0000 (UTC), Jesper Stocholm
<spam@stocholm.dk> wrote:

>Dcasso <dcasso@usa.net> wrote in
>news:otkmkt0i1ifggk476vb2l2qvkd1tc3b0ji@4ax.com:
>
>> On Tue, 10 Jul 2001 18:10:52 +0000 (UTC), Jesper Stocholm
>> <spam@stocholm.dk> wrote:
>>>Dcasso <dcasso@usa.net> wrote in
>>>news:joemkt088c97gjpk7v1h0n35ke32tn0utb@4ax.com:
>>>> Hej
>>>>
>>>> Jeg sad med samme problem og afprøvede derfor din kode, hvor jeg
>>>> prøver at loade en pdf-fil til en save-box. Men jeg opnår hele tiden,
>>>> at pdf-filen ,i stedet for at blive "saved", bliver vist i browseren
>>>>
>>>> Case "pdf"
>>>> Response.ContentType = "application/pdf" end Select
>>>
>[snip]
>>>
>>>Hvis du i stedet skriver
>>>
>>>response.contenttype = "application/octet-stream
>>>
>>>skulle det virke.
>>
>> Lige et spm. mere. Når jeg nu downloader filen, hvordan giver man den
>> så et mere passende navn i save as - boksen.
>>
>
>I mine browsere beder den da om at gemme med det rigtige navn. Har du husket
>linien
>
>response.Addheader "Content-Disposition", "inline;
>filename=somefilenamedotpdf"
>
>?


Jesper Stocholm (10-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 10-07-01 22:05

Dcasso <dcasso@usa.net> wrote in
news:h2rmktoo6d0ql38ufo2hcd2p9k6mt269p5@4ax.com:

> Ja, men den skriver filnavnet på den asp-fil hvori jeg udfører koden
> til at hente pdf-filen og altså ikke pdf-filens navn.
>

den kode jeg bruger er denne:

********************************************************************
file = request.querystring("file")
filearray = split(file,".")
extension = filearray(1)
SELECT case lcase(extension)
CASE "ps"
Response.ContentType = "application/postscript"
CASE "eps"
Response.ContentType = "application/postscript"
CASE "zip"
Response.ContentType = "application/x-zip-compressed"
CASE ELSE
Response.ContentType = "application/octet-stream"
END SELECT

set oStream = server.createobject("ADODB.Stream")
oStream.Type = 1 'adTypeBinary
oStream.Open
oStream.LoadFromFile (server.mappath(file))

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

oStream.Close
set oStream = nothing
********************************************************************

og det ser da ud til at virke korrekt. Har du prøvet at hente filen fra min
hjemmeside ?


--
I wrote to George W. Bush - see why at
http://stocholm.dk/emailgeorgewbush.asp

- Jesper Stocholm - http://stocholm.dk

Jesper Stocholm (09-07-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 09-07-01 08:05

Christian Estrup wrote in dk.edb.internet.webdesign.serverside.asp:
> Du kan bruge ADOs Stream-object til at læse filen fra en 'skjult' sti, evt.
> også med et meget underligt filnavn - og derefter sende den til brugeren med
> et 'dynamisk' filnavn. Fx:
>
> **********
>
> set oStream = server.createobject("ADODB.Stream")
> oStream.Type = 1 'adTypeBinary
> oStream.Open
>
> arr = oStream.LoadFromFile (server.mappath("skjultpath/test.pdf"))
>
> response.ContentType = "application/pdf"
> response.Addheader "Content-Disposition", "inline; filename=svendotto.pdf"
> 'Dette er det 'filnavn', brugeren ser...
> response.BinaryWrite oStream.Read
>
> oStream.Close
> set oStream = nothing
>
> **********
>

desværre ser det ud til, at MSIE har en tendens til at kigge på indholdet af
filen - og ikke kun content-type erklæringen - hvilket betyder, at jeg ikke
altid kan fremtvinge en Save/As-dialog - fx ved download af .txt-filer .
Findes der en content-type, der /altid/ får MSIE til at spørge om filen skal
gemmes ?

Jesper Stocholm
http://stocholm.dk

--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

Kim Jensen (09-07-2001)
Kommentar
Fra : Kim Jensen


Dato : 09-07-01 14:12

Findes der en content-type, der /altid/ får MSIE til at spørge om filen skal
> gemmes ?

Har du prøvet med "application/download" - jeg mener den er der til samme
formål, men er ikke 100% sikker.


mvh
Kim Jensen



Thygesen (08-07-2001)
Kommentar
Fra : Thygesen


Dato : 08-07-01 21:48

"Magnus" <arnason@email.dk> skrev i en meddelelse
news:3b487b13$0$33768$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der kender til en måde hvor besøgende kan downloade en pdf
fil
> uden at de kan se hvor den ligger.
>
> Det er en fil som kun kan hentes fra en som er beskyttet med password men
> når filen fx hentes ind i browseren så står adressen til hvor den ligger
og
> har man den så kan man snyde password beskyttelsen.
> Kan man beskytte filen mod download eller undgå at den bliver åbnet i
> browseren så adresselinien er synlig.

Du kan bruge følgende kode:

pathname = "d:\http\fil.pdf"
Server.ScriptTimeout = 1200
Const adTypeBinary = 1
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile pathname
Response.ContentType = "application/x-zip-compressed"
Response.AddHeader "content-disposition", "attachment; filename=" &
mid(pathname,InStrRev(pathname,"\")+1)
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing

Mvh. Christoffer Thygesen

e-mail: cht@cht.dk
homepage: http://cht.dk



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

Månedens bedste
Årets bedste
Sidste års bedste