Я пытаюсь GZip-архивировать содержимое переменной для вывода в браузер. Для начала я делаю это очень просто и не беспокоюсь о браузерах, не поддерживающих gzip. Также я собрал это из исследования нескольких методов, которые я смог найти в Интернете. Некоторые из них от людей, которые, возможно, читают этот вопрос.
CF: 9-Dev
Веб-сервер: Apache
РЕШЕНИЕ
<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 />