Hej, jag har en pdf-fil lokalt på servern, läser upp den och sen skall skicka den till klienten. Hur jag än gör och testar så säger pdf-editorn att dokumenten inte finns. Någon som har tips? Hej Pelle! tyvärr, gick inte. kan du inte bara köra Response.WriteFile istället? Borde inte filename vara "c:\inetpub\wwwroot\public\customs\argentina.pdf" Nej, jag får in datat så jag vet att det ligger 150k där. Dock funderar jag på om sidan verkligen är ren (från html och headers) när jag trycker på submit-knappen. Jag skall testa att gå till en tom aspx-sida som gör detta jobbet och se om det blir någon skillnad. I'll be back. Jaha, då var man en erfarenhet rikare. Så var det. Jag skapade en tom aspx sida som jag redirectade till och i denna fanns bara samma information som jag postat tidigare, då fungerade allting. <codecsharp> Nej johan, bara den kod som postades inledningsvis. Tydligen så skrivs något huvud i alla fall innan den triggar händelsen. Patrik, inte testat dina förslag - skall göra det.skicka en pdf till klient
Felet från Acrobat reader är: Det uppstod ett fel när detta dokument öppnades. Filen finns inte.
<code>
Response.Clear()
' läser upp den och stremar ut till användaren
Dim filename As String = "c:/inetpub/wwwroot/public/customs/argentina.pdf"
Dim MyFileStream = New FileStream(filename, FileMode.Open)
Dim FileSize As Long = MyFileStream.Length
Dim Buffer(CInt(FileSize)) As Byte
MyFileStream.Read(Buffer, 0, CInt(FileSize))
MyFileStream.Close()
Response.ContentType = "application/pdf"
Response.AddHeader("Content-Disposition", "attachment;filename=argentina.pdf")
Response.BinaryWrite(Buffer)
Response.End()
</code>Sv: skicka en pdf till klient
Behöver du AddHeader?
Jag tog en titt på http://www.adobe.com/products/adobemag/archive/pdfs/0001htmg.pdf den beskriver ungefär samma sak, fast lite mer avancerat...
Vänliga hälsningar / JohanSv: skicka en pdf till klient
Prova själva: Ta koden ovan, lägg till Imports System.IO överst
lägg en submitknapp och på onclick lägger ni det scriptet.Sv: skicka en pdf till klient
<code>
Response.Clear();
String filename= "c:/inetpub/wwwroot/Test/Argentina.pdf" ;
Response.ContentType = "application/pdf" ;
Response.AddHeader("Content-Disposition", "attachment;filename=argentina.pdf") ;
Response.WriteFile(filename);
Response.End();
</code>
Eller är det nåt jag har missat?Sv: skicka en pdf till klient
/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nuSv: skicka en pdf till klient
Sv: skicka en pdf till klient
Så summa summarum är att aspx-sidan som allt sköttes på hade nog redan skapat någon form av header när rutinen startade sitt utskick av data till klienten vilket medförde att man inte fick iväg en korrekt header.
Om någon vet med sig hur man gör för att vid en postback rensa all header-information (ex vid Button1_Click) så berätta gärna det.
Tack för era tips.Sv: skicka en pdf till klient
Response.ClearContent();
Response.ClearHeaders();
</code>Sv: skicka en pdf till klient