Avatar billede ravnkilde Nybegynder
20. december 2005 - 22:06 Der er 6 kommentarer og
1 løsning

Response.AddHeader - download af PDF-fil virker ikke

Hej!

Jeg har nedenstående kode, som skal fremtvinge en dialogboks, hvor brugeren kan vælge enten at åbne eller gemme på disken. Den gemmer ganske vist på disken, men filen er for lille og meldes ødelagt af Acrobat ved åbning.

Venligst hjælp mig! Jeg har prøvet med andre PDF-filer, som jeg ved er OK.

--- kode start ---

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% 
  Response.ContentType = "application/pdf"
  Response.AddHeader "content-disposition","attachment; filename=dokument.pdf"
 
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Sidens titel</title>
</head>
<body></body>
</html>

---  kode slut ---
Avatar billede ttopholm Nybegynder
20. december 2005 - 22:12 #1
jeg mener det er bufferen, der er sat for lille...
Avatar billede ravnkilde Nybegynder
21. december 2005 - 09:07 #2
OK, men jeg har prøvet med en PDF-fil på 35 KB. Det skulle bufferen vel nok kunne klare?
Avatar billede softspot Forsker
21. december 2005 - 10:28 #3
Det er muligvis fordi du ikke sender et PDF-dokument, men et HTML-dokument (det bliver ikke PDF bare fordi du sætter headeren til pdf). Det man normalt ville gøre var at læse dokumentet fra diskenm (i binær format) og sende det til klienten med response.binarywrite. Din opsætning af headers ser som sådan fin ud, men du mangler bare at sende et pdf-dokument.

Når du sender et binært dokument til klienten vil du typisk ikke have HTML-kode i slutningen af siden, så med mindre der er en masse andet kode i din side end det du viser så er problemet nok at du slet ikke sender et PDF-dokument...
Avatar billede ravnkilde Nybegynder
21. december 2005 - 13:10 #4
softspot: Tak for din kommentar. Kan du evt. hjælpe mig lidt mere omkring selve koden til den rigtige opsætning, eller give et eksempel. Pft.
Avatar billede ttopholm Nybegynder
21. december 2005 - 13:51 #5
Response.Buffer = false
Response.ContentType = "application/pdf"
Response.AddHeader "Content-Type", "application/pdf"
Response.AddHeader "Content-Disposition", "inline;filename=appform.pdf"
Const adTypeBinary = 1
Dim strFilePath
strFilePath = Server.MapPath("appform.pdf")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
Avatar billede ravnkilde Nybegynder
02. januar 2006 - 08:48 #6
ttopholm: Jeg ændrede "inline" til "attachment". Det fungerer nu 100% efter hensigten nu. Tak for hjælpen. Læg et svar og få nogle points. Godt nytår!
Avatar billede ravnkilde Nybegynder
20. marts 2006 - 22:13 #7
.
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