2010-02-23 19 views
5

Bu sayfada bazı pdf raporlarını görüntülemek için üzerinde bir iframe bulunan ASP.NET sayfam var. Kullanıcı açılır listeden rapor türünü seçtiğinde, rapor verisi için gerekli olan verileri ASP.NET Oturumu'na eklerim ve iframe'nin .pdf raporunu oluşturan .ashx modül adresi için "src" özniteliğini değiştiririm. Ancak tarayıcıda .pdf dosyalarını görüntülemek için Adobe glug-in yüklü değilse, tarayıcı rapor dosyasını kaydetmeyi önerir ve önerilen dosyanın adı "HandlerName.ashx" dir. Ancak dosyayı "Rapor.pdf" adıyla kaydetmek için tarayıcıyı önermek istiyorum. Bunu yapabilir miyim? Herhangi bir geçici çözüm var mı?Dosyaları ASP.NET .ashx modüllerini kullanarak indirme

+0

Dikkat. Adobe eklentisinin yüklü olması durumunda oluşturulan .pdf dosyasını görüntülemek gerekiyor ... – w1z

cevap

4

deneyin satır içi içerik eğilim, ancak bu kontrol etmek zorunda:

Response.ContentType = "application/pdf"; 
Response.AppendHeader("content-disposition", "inline; filename=" + name); 
+0

Mike, bu harika. Kharkov, GlobalLogic'ten teşekkürler. Мир тесен;) – w1z

+0

:), ama bildiğim kadarıyla bu işe yaramayacak ... А кто ты конкртейней? –

+0

Bu çözümle biraz oynardım, ama işe yaramıyor gibi görünüyor ... "тісніше немає вже куди: D" –

7

sizin ashx-dosyasında aşağıdaki başlığı ekleyin:

context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf"); 
context.Response.ContentType = "application/pdf"; 
+0

+1 daha hızlı olmak için :) – Diadistis

+0

Bu durumda tarayıcı, Adobe eklentisi yüklendiğinde dosyayı indirmeyi önerir ... – w1z

3
Use  


Response.Clear(); 
Response.ContentType = "application/octet-stream"; 
Response.AddHeader("Content-Disposition", "attachment; filename=Report.PDF");            
Response.WriteFile(Server.MapPath("~/YourPath/Report.PDF")); 
Response.End(); 
İlgili konular