Coldfusion如何将PDF响应流保存到文件

问题描述

我们有一个REST API,可返回内容类型application / pdf的流。我只想将其保存到服务器上的文件中。

     @media (max-width: 600px) {
        .toggle-btn {
            display: flex;
        }

        .logo {
            display: none;
        }

        header {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
        }

        .row ul {
            display: flex;
            flex-direction: column;
        }
    }

我正在制作一个空白的PDF,有什么想法吗? (香港专业教育学院尝试过cfdocument / cfpdf的各种组合都没有运气)

这是REST响应的转储:

{{3}}

解决方法

我想我明白了

解决方案1:

<cfhttp url="#url#" method="post" result="res">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
    <cfhttpparam type="body" value="#payload#" />
</cfhttp>
<cfset bytes  = res.FileContent.toByteArray()>
<cfscript>    
    fos = createObject("java","java.io.FileOutputStream").init("myfile.pdf");
    fos.write(bytes);
    fos.flush();
    fos.close();
</cfscript>

编辑:基于SOS的解决方案,它也可以工作:

解决方案2:

<cfhttp url="#url#" method="post" result="res" getAsBinary="Auto">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
    <cfhttpparam type="body" value="#payload#" />
</cfhttp>

<cfset fileName = listlast(res["responseHeader"]["content-disposition"],";=")>
<cffile action="write" file="#path#\#fileName#" output="#res.FileContent#">