我使用以下代码成功连接到版本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>
以下是我尝试用于{{3}}的代码。它将文件写入正确的文件夹,但它不是可读的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>
答案 0 :(得分:2)
默认情况下,ConvertAPI版本2返回JSON。您需要使用Base64解码器解码文件。
为了节省响应时间和带宽,最好将accept=application/octet-stream
标头添加到请求中,以获得即时二进制响应而无需任何解码。
答案 1 :(得分:2)
使用评论和Tomas's answer中的建议,这是我的最终代码。它首先反序列化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>