मैं ब्राउज़र में आउटपुट करने के लिए एक चर में GZip सामग्री को करने का प्रयास कर रहा हूं। शुरू करने के लिए मैं इसे बहुत आसान बना रहा हूं और उन ब्राउज़रों के बारे में चिंता नहीं कर रहा हूं जो gzip का समर्थन नहीं करते हैं। इसके अलावा मैंने इसे वेब पर कई तरीकों से शोध करने से एक साथ रखा है। उनमें से कुछ लोग जो इस प्रश्न को पढ़ रहे हैं।GZip कोल्डफ्यूजन से आउटपुट के लिए स्ट्रिंग के परिणामस्वरूप ब्राउज़र में "सामग्री एन्कोडिंग त्रुटि" में परिणाम
<cfsavecontent variable="toGZIP"><html><head><title>Test</title></head><body><h1>Fear my test</h1></body></html></cfsavecontent>
<cfscript>
ioOutput = CreateObject("java","java.io.ByteArrayOutputStream");
gzOutput = CreateObject("java","java.util.zip.GZIPOutputStream");
ioOutput.init();
gzOutput.init(ioOutput);
gzOutput.write(toGZIP.getBytes("UTF-8"), 0, Len(toGZIP.getBytes()));
gzOutput.finish();
gzOutput.close();
ioOutput.flush();
ioOutput.close();
toOutput=ioOutput.toString("UTF-8");
</cfscript>
<cfcontent reset="yes" /><cfheader name="Content-Encoding" value="gzip"><cfheader name="Content-Length" value="#ArrayLen(toOuptut.getBytes())#" ><cfoutput>#toOuptut#</cfoutput><cfabort />
लेकिन मैं फ़ायरफ़ॉक्स (और क्रोम और सफारी) में कोई त्रुटि मिलती है
सामग्री एन्कोडिंग त्रुटि
जो पृष्ठ आप देखने की कोशिश कर रहे दिखाया नहीं जा सकता है क्योंकि यह एक अमान्य या असमर्थित का उपयोग करता है संपीड़न का रूप।
किसी के पास कोई विचार है?
ओएस: मैक OX-X Snow Leopard
सीएफ: 9-देव
वेबसर्वर: अपाचे
समाधान
<cfsavecontent variable="toGZIP"><html><head><title>Test</title></head><body><h1>Fear my test</h1></body></html></cfsavecontent>
<cfscript>
ioOutput = CreateObject("java","java.io.ByteArrayOutputStream");
gzOutput = CreateObject("java","java.util.zip.GZIPOutputStream");
ioOutput.init();
gzOutput.init(ioOutput);
gzOutput.write(toGZIP.getBytes(), 0, Len(toGZIP.getBytes()));
gzOutput.finish();
gzOutput.close();
ioOutput.flush();
ioOutput.close();
toOutput=ioOutput.toByteArray();
</cfscript>
<cfheader name="Content-Encoding" value="gzip"><cfheader name="Content-Length" value="#ArrayLen(toOutput)#" ><cfcontent reset="yes" variable="#toOutput#" /><cfabort />
@ tyler-- आप अभी भी इस वापसी का उपयोग कर रहे हैं और आप gzip प्रक्रिया आंतरिक रूप से प्रबंधित करने से अच्छे परिणाम देख रहे हैं? मैं इसे खुद भी करने की कोशिश करना चाहता हूं। मुझे आईआईएस 7.0 को गतिशील सामग्री (.cfm) पृष्ठों को gzip करने के लिए नहीं मिल सकता है, हालांकि यह दावा कर सकता है। क्या आपने कभी आईआईएस को ऐसा करने की कोशिश की है? –
मैंने आईआईएस को गतिशील पृष्ठों को gzip करने की कोशिश नहीं की है, हालांकि मुझे नहीं लगता कि मैं ऐसा करना चाहता हूं क्योंकि यह प्रति अनुरोध ओवरहेड का जबरदस्त उत्पादन करेगा। Gzipped सामग्री का प्रबंधन काम करता है। मुझे अभी तक इसकी सीमाओं का पूरी तरह से परीक्षण करने का अवसर नहीं मिला है, लेकिन मुझे जल्द ही उम्मीद है। –