2

我使用以下代码成功连接到版本 1:

    <cfhttp method="post" 
        url="http://do.convertapi.com/Word2Pdf" 
        result="convertAttempt" 
        path="#arguments.path#" 
        file="#arguments.fileToDestination#"
    >
       <cfhttpparam type="formfield" name="ApiKey" value="xxxxxxx" >
       <cfhttpparam type="file" file="#arguments.path#/#arguments.fileToConvert#" name="File" >
   </cfhttp>

下面是我尝试用于版本 2的代码。它将文件写入正确的文件夹,但它不是可读的 PDF。我认为它与base64有关,但不确定。无论如何,希望那里有另一个 ColdFusion 用户来帮助我。然后,我们希望在 convertAPI 站点上获得代码示例以帮助其他人。

<cfhttp method="post" 
    url="http://v2.convertapi.com/docx/to/pdf?Secret=mysecret" 
    result="convertAttempt"
    path="#arguments.path#" 
    file="#arguments.fileToDestination#"
>   

    <cfhttpparam type="file" file="#arguments.path##arguments.fileToConvert#" name="File" >
</cfhttp>
4

2 回答 2

2

使用评论中的建议和托马斯的回答,这是我的最终代码。它首先反序列化来自 JSON 的响应。然后将 pdf 从 base64 解码为二进制。最后,将二进制 pdf 文件保存到磁盘。

<cfhttp method="post" url="http://v2.convertapi.com/docx/to/pdf?Secret=your-secret" result="convertAttempt">    
   <cfhttpparam type="file" file="#arguments.path##arguments.fileToConvert#" name="File" >
</cfhttp>

<cfset FileResult = deserializeJSON(convertAttempt.FileContent) />

<cfif isDefined("fileResult.Code")>
    <!--- Failed --->
<cfelse>
    <cfset FileWrite("#arguments.path##arguments.fileToDestination#", BinaryDecode(FileResult.Files[1].FileData, "base64"))>
</cfif>
于 2018-04-04T15:47:02.140 回答
2

默认情况下,ConvertAPI 版本 2 返回 JSON。您需要使用 Base64 解码器对文件进行解码。

为了节省响应时间和带宽,最好将accept=application/octet-stream标头添加到请求中,以获得即时二进制响应而无需任何解码。

于 2018-04-04T08:06:54.523 回答