CFHTTP POST,结果是图像,如何保存

时间:2018-10-23 12:59:36

标签: coldfusion exif cfhttp

我找到了一个清除图像中exif数据的网站。来源可以是上传的图片或URL。我想,也许我可以将它与CFHTTP一起使用,以自动处理发布到网站上的图片。我知道在将图像上传到站点之前,我可能可以通过该站点手动运行图像。如果需要,可以称之为练习。

这是我使用的代码,基本上与这个非常简单的网站(link)上的表单源相匹配

<cfhttp method="POST" url="https://www.verexif.com/en/quitar.php" result="result"  >
    <cfhttpparam name="foto_url" type="formfield" value="{myimageurl}">
</cfhttp>

当我CFDUMP结果时,我得到以下信息: CFDUMP of CFHTTP Result

当我尝试使用DeserializeJSON(result.Filecontent)时,它给了我ColdFusion错误:

ColdFusion error

当我在CFHTTP标签中对原始URL进行网址编码时,result.filecontent包含原始网站的源代码。

从上面的第一张图片可以看出,输出中包含一个名为“ foto_no_exif.jpg”的文件。这是我需要下载的文件。我怎样才能做到这一点 ?

1 个答案:

答案 0 :(得分:3)

在当前转储中,您具有已修改的映像,但是您需要以二进制数据的形式对其进行访问。通过将属性getasbinary添加到cfhttp标签中,可以强制将请求的文件内容视为二进制数据。

工作示例:

<cfset imageURL ='https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/long_description.jpg'/>
<cfhttp method="get" getasbinary="yes" charset="utf-8" url="https://www.verexif.com/en/quitar.php" result="result">
    <cfhttpparam name="foto_url" type="formfield" value="#imageURL#">
</cfhttp>
<cfcontent variable="#result.Filecontent#" type="image/jpg" reset="true" />

Run it on TryCF.com