Avatar billede tre Nybegynder
08. februar 2001 - 09:00 Der er 27 kommentarer og
2 løsninger

Gennemtving download!!

Hej Alle,

Jeg har et lille problem som jeg gerne vil have lidt hjælp til at løse.

Mit problem er at jeg ønsker (uanset hvad) at gennemtvinge en downloadboks ved download af PDF-filer fra mit websted.
Jeg vil ikke til at Zippe filerne, da det ikke er alle mine brugere der ved hvad Zip er.
Jeg har hørt noget om at man kan sætte en kommando ind i headeren!!
Det hele skal køre på et \"standard\" ASP-hotel (hvad end det betyder :-)

Hvis der er nogen der ligger inde med et par linier ASP-kode der muliggør dette vil jeg blive meget taknemmelig!

MVH

TRE
Avatar billede kasseper Nybegynder
08. februar 2001 - 09:16 #1
Du kan jo snyde, og ændre \'efternavnet\' til .zip også skrive i en alertbox inden man downloader, at man skal huske at omnavngive din fil til .pdf ;)
Avatar billede tre Nybegynder
08. februar 2001 - 09:17 #2
Det kunne man selvfølgelig også - men jeg er ikke sikker på at brugerne helt ved hvad de gør - og hvorfor!
Der er ingen grund til at gøre dem forvirrede hvis man har chancen for at undgå det - vel...
Avatar billede kasseper Nybegynder
08. februar 2001 - 09:46 #3
nej da....:)
Avatar billede brain Nybegynder
08. februar 2001 - 10:39 #4
Nedenstående eksempel (som er testet) viser hvordan man bruger Content-Disposition til af force et download... det var sikkert det du leder efter...

<%
    Response.Buffer = TRUE
%>
<HTML>
<%
    Response.ContentType = \"bad/type\"
    Response.AddHeader \"Content-Disposition\",\"attachment; filename=test.xxx\"

    Response.Flush
    Response.Write \"test\"
%>
</HTML>
Avatar billede tre Nybegynder
08. februar 2001 - 15:57 #5
Brain >> Jeg har nu prøvet scriptet af, men kan umiddelbart ikke få det til at virke....

Den eneste ændring jeg har lavet er at ændre filnavnet til navnet på min PDF-fil.

Den henter istedet outputtet af asp-siden med filnavnendelsen *.pdf.

Hvad gør jeg galt??
Avatar billede arno Nybegynder
08. februar 2001 - 16:03 #6
Jeg har et eksempel her der virker...

<tr>
<TD valign=\"top\"><A href=\"pdf/2853DERU.PDF\" target=\"_blank\"><IMG border=\"0\" src=\"grafx/acrobat_icn.gif\" width=\"16\" height=\"16\"></A></TD>
<TD></TD>
<TD><SPAN class=\"nyheder-lille\">Deruda\' 1. udgave 2000</SPAN></TD>
</tr>

jeg anvender det selv på de web sider jeg har med at gøre

/arno
                   
Avatar billede tre Nybegynder
08. februar 2001 - 16:06 #7
Arno >> Undskyld hvis jeg spørger dumt - men hvor ligger det geniale som gennemtvinger download i din kode??
I mine øjne ligner det et ganske alm. link!
Avatar billede arno Nybegynder
08. februar 2001 - 16:07 #8
Hov...

Det passer ikke helt det jeg skriver... Der kommer kun en downloadboks op, hvis der ikke er acrobat reader på maskinen man sufer på..

/arno
Avatar billede tre Nybegynder
08. februar 2001 - 16:13 #9
Det er jo lige præcis denne \"detalje\" jeg gerne vil undgå :-)
Avatar billede arno Nybegynder
08. februar 2001 - 16:24 #10
Men gennemtvinge ??? hvorfor egentlig ??

/arno
Avatar billede tre Nybegynder
08. februar 2001 - 16:32 #11
Arno >> Da nogle af mine PDF-filer er ret store, vil jeg gerne have at folk henter dem ned lokalt!

Så kan man også se hvor langt man er i processen.

Desuden kunne det jo være at de fik lyst til at beholde dem på deres harddisk og eventuelt distribuere dem via mail.... :-)
Avatar billede arno Nybegynder
08. februar 2001 - 19:17 #12
Ok... forstår jeg godt...
men det med at gemme er jo egentlig \"bare\" at højre klikke på linket og sig\' ja til at \"save target as\" så downloader du pdf filen...til det sted på hardisken du ønkser...

/arno

Avatar billede brain Nybegynder
08. februar 2001 - 22:07 #13
<%
    Response.Buffer = TRUE
%>
<%
    Response.ContentType = \"bad/type\"
    Response.AddHeader \"Content-Disposition\",\"attachment; filename=test.pdf\"

    Response.Flush
   
%>
<!--#include file=\"827.pdf\"-->
Avatar billede brain Nybegynder
08. februar 2001 - 22:07 #14
ovenstående eksempel downloader 827.pdf som ligger på serveren, til en fil der kommer til at hedde test.pdf....
Avatar billede tre Nybegynder
09. februar 2001 - 09:26 #15
Arno >> Ja - der er det \"bare\"....
        Men en del af mine brugere er som sagt \"untrained\" mht computere... Derfor skal det hele virke automatisk....


Brain >> Dit script ser ud til at være ganske genialt, men hos mig gemmer den stadig output\'et af asp-filen som test.pdf
Avatar billede brain Nybegynder
09. februar 2001 - 17:49 #16
Ja, men det kan du jo ændre. Jeg forsøger lige at lave et der virker generelt, ala. downladfile.asp?filename=fil.pdf
Avatar billede brain Nybegynder
09. februar 2001 - 19:04 #17
Kan kaldes med getfile.asp?file=whatever.pdf

<%
    Response.Buffer = TRUE
    Response.ContentType = \"bad/type\"
    Response.AddHeader \"Content-Disposition\" , \"attachment; filename=\" & Request.querystring(\"file\")
    Response.Flush

    Server.Transfer( Request.QueryString(\"file\") )
%>
Avatar billede tre Nybegynder
12. februar 2001 - 09:18 #18
brain >> Det er altså meget underligt....

Det lader til at det burde fungere, men den henter ikke selve filen. Den laver bare en \"tom/invalid\" pdf-fil der ikke fylder noget.

Virker det hos dig??
Avatar billede tre Nybegynder
16. februar 2001 - 14:48 #19
Hej med jer.

Intet af jeres kode fungerede....

Men nu har jeg fået lortet til at virke alligevel.

Hvis i vil se koden er den her:
(dokumentation her: http://support.microsoft.com/support/kb/articles/Q193/9/98.ASP)


<%
Option Explicit
Response.Expires = 0
Response.Buffer = TRUE
Response.AddHeader \"Content-Disposition\",\"attachment; filename=test.pdf\"
Response.AddHeader \"Content-Description\",\"ASP Generated Data\"
Response.ContentType = \"application/pdf\"

Dim vntStream, oMyObject

Set oMyObject = Server.CreateObject(\"MyObject.BinRead\")
vntStream = oMyObject.readBinFile(server.mappath(\"test.pdf\"))

Response.BinaryWrite(vntStream)
Response.Flush
%>



Alligevel tak til brain der hjalp mig på vej..
Avatar billede brock Nybegynder
02. maj 2001 - 20:33 #20
Vil du ikke være venlig at sende .dll filen, da jeg ikke ligger inde my VB

mv brock

sbrock@mail.tele.dk
Avatar billede tre Nybegynder
03. maj 2001 - 08:16 #21
Øøhhmmm - hvilken dll fil?? Har det her noget med en dll-fil at gøre??
Avatar billede brock Nybegynder
03. maj 2001 - 08:32 #22
har det ikke noget med

To create the component that performs the binary read, perform the following steps:

Create a new ActiveX DLL project in Visual Basic 5.0 or later.


Rename the project MyObject.


Rename the class module BinRead.


Cut and paste the following code into the General Declarations section of the class module:

  Function readBinFile(ByVal bfilename As String) As Variant
          Dim fl As Long
          Dim FileNum As Long
          Dim binbyte() As Byte
          Dim binfilestr As String

          On Error GoTo errHandler
         
          FileNum = FreeFile
          Open bfilename For Binary Access Read As #FileNum

          fl = FileLen(bfilename)
          ReDim binbyte(fl)

          Get #FileNum, , binbyte

          Close #FileNum

          readBinFile = binbyte
          Exit Function

      errHandler:
          Exit Function
      End Function



Save the project.


On the File menu click Make MyObject.dll.

at gøre ---

altså filen MyObject.dll ??


jeg fosøgte at køre din kommando, på win98 PWS og der kan den ikke udføre Server.CreateObject blev ikke udført, så jeg går ud fra, at den mangler at kunne bruge Server.CreateObject(\"MyObject.BinRead\") - eller er der noget jeg har misforstået ??
Avatar billede tre Nybegynder
03. maj 2001 - 08:34 #23
Aner det ikke. Ovenstående virker på en NT 4.0 IIS. Det er det min udbyder bruger, så jeg har ingen anelse om hvordan det fungerer i W98...
Avatar billede brock Nybegynder
03. maj 2001 - 08:44 #24
den maskine, hvorpå du programmerer asp er det også en NT 4.0 IIS
Avatar billede tre Nybegynder
03. maj 2001 - 09:06 #25
Jeps.
Avatar billede brock Nybegynder
03. maj 2001 - 09:20 #26
Vil du gøre mig den store tjeneste at se/søge efter filen -MyObject.dll i din winnt/system mappe eller på HD

mvh brock
Avatar billede brock Nybegynder
03. maj 2001 - 09:27 #27
Fik lige en kammerat, som er VB programmører til at lave dll filen til mig, så nu virker det !!!

- du skal ellers have tak for hjælpen - det var pænt af dig at svare !!! ;)

mvh

brock
Avatar billede tre Nybegynder
03. maj 2001 - 09:28 #28
Det var så lidt. Det er jo det det hele handler om herinde...
Avatar billede brock Nybegynder
03. maj 2001 - 09:32 #29
ja, men en gang imellem er det som om der er nogen, der glemmer \"den sande ånd\" i programmering - share your knowledge !

cu
-brock
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
Kurser inden for grundlæggende programmering

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