2009-07-13 6 views
5

ठीक है। मुझे यकीन है कि यह एक्सएमएल फाइलों को .xml एक्सटेंशन के साथ डाउनलोड करता है, लेकिन मुझे लगता है कि डाउनलोड फ़ाइल से .xml extenstion गायब होने के कारण यहां कोड में क्या गुम है।फ़ायरफ़ॉक्स फ़ाइल डाउनलोड करते समय .xml एक्सटेंशन क्यों शामिल नहीं करता है?

नोट: यह IE में काम करता है 6+

private void GenerateXmlAttachment(string xmlInStringFormat, string fileName) 
    { 
    // Where fileName = "someFile.xml" 
     HttpResponse response = HttpContext.Current.Response; 
     response.Clear(); 
     response.Charset = string.Empty; 
     response.ContentEncoding = Encoding.Default; 

    response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 
     response.AddHeader("Content-Length", xmlInStringFormat.Length.ToString()); 
    response.ContentType = "text/xml";   

    response.Write(xmlInStringFormat); 
     response.Flush(); 
     response.End(); 

    } 

विचार किसी को भी (वेबकिट आधारित ब्राउज़र या ओपेरा की कोशिश नहीं की)?

+1

को

response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 

नीचे कोड कर सकते हैं क्या आप पूर्णतः गारंटी फ़ाइल नाम अंत पर .xml है? – cjk

+1

100% पूरी तरह से गारंटीकृत। बस फिर से जांच की गई क्योंकि आपने मुझे संदेह किया है;) – nickytonline

+0

यहां लाइव हेडर हेडर की प्रतिक्रिया हेडर की देखभाल है: HTTP/1.x 200 ओके सर्वर: माइक्रोसॉफ्ट-आईआईएस/5.1 दिनांक: सोम, 13 जुलाई 200 9 17:05 : 14 जीएमटी एक्स संचालित-द्वारा: ASP.NET एक्स ASPNET-संस्करण: 2.0.50727 सामग्री-विन्यास: लगाव; फ़ाइल नाम = test.xml सामग्री-लंबाई: 2040 कैश-नियंत्रण: निजी सामग्री- टाइप करें: टेक्स्ट/एक्सएमएल – nickytonline

उत्तर

7

बदलने का प्रयास करें

करने के लिए:

response.AddHeader ("सामग्री-विन्यास", "लगाव; फ़ाइल नाम =" + HttpUtility.UrlEncode (फ़ाइल का नाम));

कोड सभी ब्राउज़रों के लिए काम करता है (फ़ायरफ़ॉक्स सहित जो हम भारी उपयोग करते हैं)।

+0

@ जोस। हाँ यह है। मैंने इसे इस पोस्ट पर लगभग 30 मिनट पहले पाया, http://www.webmaster-talk.com/asp-forum/35962-content-disposition-does-nto-work-firefox.html। पोस्ट करने का शुक्रिया। – nickytonline

2

क्या आपके फ़ाइल नाम में इसमें स्थान है? फ़ायरफ़ॉक्स में समस्या हो सकती है। (", फ़ाइल नाम = लगाव" + फ़ाइल नाम "सामग्री-विन्यास",)

response.AddHeader;:

अधिक जानकारी के लिए इस ब्लॉग पोस्ट देखें:

http://blog.mjjames.co.uk/2009/04/content-disposition-in-different.html

+0

यह सही जवाब है! –

6

फ़ायरफ़ॉक्स रिक्त स्थान की समस्याओं को हल किया। उद्धरण के साथ अपने फ़ाइल नाम के चारों ओर।

बदलें

response.AddHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\""); 
संबंधित मुद्दे