2008-12-06 18 views
9

Bu sorunun nasıl söyleneceğinden emin değilsiniz ... bu yüzden düzenlemeler memnuniyetle karşılandı! Neyse ... işte burada.Tarayıcıda Pdf akışı yaparken dosyanın adı nasıl ayarlanır?

Şu anda oluşturulan Pdfs için Crystal Reports kullanıyorum ve sadece çıktıyı kullanıcıya aktarıyorum. Kodum aşağıdaki gibi görünür: Bu kod çalışır

System.IO.MemoryStream stream = new System.IO.MemoryStream(); 

stream = (System.IO.MemoryStream)this.Report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 

this.Response.Clear(); 
this.Response.Buffer = true; 
this.Response.ContentType = "application/pdf"; 
this.Response.BinaryWrite(stream.ToArray()); 
this.Response.End(); 

sonra tarayıcı açılması Acrobat Reader Pdf akışları. Harika çalışıyor!

Sorun, kullanıcı varsayılan dosya adını gerçek dosya adına kaydetmeye çalıştığında benim sorunum ... bu durumda varsayılan olarak CrystalReportPage.pdf. Bunu zaten ayarlayabilir miyim? Öyleyse nasıl?

Herhangi bir yardım için teşekkür ederiz. İçerik-eğilim başlığı üzerinden Genellikle

cevap

17

, - yani

Content-Disposition: inline; filename=foo.pdf 

Dolayısıyla, sadece onunla, ne olursa olsun Headers.Add veya AddHeader veya kullanın:

response.Headers.Add ("İçerik -Disposition "," satır içi; dosya adı = foo.pdf ");

7
System.IO.MemoryStream stream = new System.IO.MemoryStream(); 

stream = (System.IO.MemoryStream)this.Report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 

this.Response.Clear(); 
this.Response.Buffer = true; 
this.Response.ContentType = "application/pdf"; 
this.Response.AddHeader("Content-Disposition", "attachment; filename=\""+FILENAME+"\""); 
this.Response.BinaryWrite(stream.ToArray()); 
this.Response.End(); 
(inline eki "bir dosya olarak kaydetmek" is "tarayıcıda göster" dır)
İlgili konular