2012-08-23 16 views
8

मैं मास्टर पेज क्लाइंट साइड स्क्रिप्ट (Jquery) से .ashx पेज का अनुरोध कर रहा हूं जिसमें एक पीडीएफ फाइल डाउनलोड करने के लिए एक कोड है। जब मैं इसे डीबग करता हूं, तो मैं "फ़ाइल डाउनलोड" कोड का निष्पादन देख सकता हूं लेकिन फ़ाइल डाउनलोड नहीं हो रही है।फ़ाइल डाउनलोड करके .ashx पेज

$.ajax({ 
      type: "POST", 
      url: "FileDownload.ashx", 
      dataType: "html", 
      success: function (data) { } 
     } 
     ); 


    public class FileDownload : IHttpHandler 
{ 

    public void ProcessRequest(HttpContext context) 
    { 
     //context.Response.ContentType = "text/plain"; 
     //context.Response.Write("Hello World"); 

     string fileName = "BUSProjectCard.pdf"; 
     string filePath = context.Server.MapPath("~/Print/"); 
     context.Response.Clear(); 
     context.Response.ContentType = "application/pdf"; 
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); 
     context.Response.TransmitFile(filePath + fileName); 
     context.Response.End(); 
    } 
+1

यह पोस्ट मदद कर सकता है? http://stackoverflow.com/questions/1999607/download-and-open-pdf-file-using-ajax –

उत्तर

11

आपकी फ़ाइल डाउनलोड कर रहा है, लेकिन आप जावास्क्रिप्ट पर इसे पाने के लिए, आपके कॉल की data पैरामीटर पर क्योंकि आप इसे अजाक्स के साथ कहते हैं।

आप एक हैंडलर का उपयोग - तो यहाँ की जरूरत नहीं अजाक्स, और सबसे आसान बात जावास्क्रिप्ट का उपयोग कर ऐसा करने के लिए है कि:

window.location = "FileDownload.ashx?parametres=22"; 

या के रूप में

<a target="_blank" href="FileDownload.ashx?parametres=22" >download...</a> 

आह एक सरल लिंक के साथ, और यूआरएल के माध्यम से पैरामीटर भेजें, आप उन्हें इस तरह से पोस्ट नहीं कर सकते हैं।

आप यह भी पढ़ सकते हैं: What is the best way to download file from server

+0

यह बहुत उपयोगी है, आप उत्तर के साथ सही हैं। क्लाइंट में एक जेसन कॉल के साथ .ashx में फ़ाइल डाउनलोड करने का प्रयास करने के कुछ मिनट बाद, मुझे फ़ाइल किसी भी तरह से नहीं मिली। – amelian

+0

@Aristos यह पूरी तरह से काम करता है। लेकिन सर्वर के पक्ष में कुछ गलत होने पर मुझे संदेश दिखाना होगा .. मैं यह कैसे करूँगा? संदेश "कुछ गड़बड़ हुई या फ़ाइल नहीं मिली" – Prabu

+0

@ सर्वर पर पक्ष में आप केवल त्रुटि लॉग कर सकते हैं - हैंडलर के अंदर सापेक्ष आसान है। लॉग क्लास ढूंढें या लिखें ... – Aristos