Skip to main content
Participant
Feb 7, 2016 12:32 PM UTC
Answered

cfzip unzip to browser

Is there a way to unzip without writing the PDF file inside the zip to disk but directly to the browser for downloading?

    This topic is closed to new replies. Start a new post to keep the conversation going.
    WolfShade
    WolfShadeCorrect answer
    Legend
    Feb 8, 2016 8:49 PM UTC

    Depending upon what version of CF server you're using, it would be like this.

    Say your .zip file is located at C:\userguide.zip, and it contains one PDF file, userguide.pdf.

    <cfzip file="C:\userguide.zip" action="list" name="filez" />

    <cfzip file="C:\userguide.zip" action="readBinary" entrypath="#filez.name#" variable="thisFile" />

    <cfheader name="Content-Disposition" value="inline; filename=#filez.name#" />

    <cfheader name="Content-Type" value="application/pdf" />

    <cfcontent type="application/pdf" variable="#ToBinary(thisFile)#" reset="true" /><cfabort>

    HTH,

    ^_^

    UPDATE:  Very important that the filename of the PDF not contain any spaces, slashes, backslashes, etc.  Replace all of these with underscore, if you must.

    UPDATE2:  I should also note that the above should be the only code on the page.  Anything before the above will break the process, and anything after will be ignored.

    The CFABORT is if you are redirecting to this page from another, then this will offer the PDF to stream without actually going to the page in the browser - it will offer the file, but appear as if it's running in the background.

    3 replies

    Participant
    Feb 14, 2016 10:47 AM UTC

    Thank you, that worked perfectly!

    Translate
    WolfShade
    Legend
    Feb 16, 2016 3:57 PM UTC

    Glad you got it working, and thank you for marking my answer correct.

    V/r,

    ^_^

    Translate
    WolfShade
    WolfShadeCorrect answer
    Legend
    Feb 8, 2016 8:49 PM UTC

    Depending upon what version of CF server you're using, it would be like this.

    Say your .zip file is located at C:\userguide.zip, and it contains one PDF file, userguide.pdf.

    <cfzip file="C:\userguide.zip" action="list" name="filez" />

    <cfzip file="C:\userguide.zip" action="readBinary" entrypath="#filez.name#" variable="thisFile" />

    <cfheader name="Content-Disposition" value="inline; filename=#filez.name#" />

    <cfheader name="Content-Type" value="application/pdf" />

    <cfcontent type="application/pdf" variable="#ToBinary(thisFile)#" reset="true" /><cfabort>

    HTH,

    ^_^

    UPDATE:  Very important that the filename of the PDF not contain any spaces, slashes, backslashes, etc.  Replace all of these with underscore, if you must.

    UPDATE2:  I should also note that the above should be the only code on the page.  Anything before the above will break the process, and anything after will be ignored.

    The CFABORT is if you are redirecting to this page from another, then this will offer the PDF to stream without actually going to the page in the browser - it will offer the file, but appear as if it's running in the background.

    Translate