【问题标题】:coldfusion refuses to decode base64 imageColdfusion 拒绝解码 base64 图像
【发布时间】:2012-01-23 16:01:14
【问题描述】:

几个小时前,我发现我可以很容易地在html5文件api和coldfusion之间进行通信,方法是通过表单属性传递文件api创建的DataUrl,让coldfusion为我将图像文件写入服务器。

这很好。

但是,现在它拒绝解码我传递的这些 base64 字符串。我已经在其他解码器中测试了 base64 字符串,它们可以正确显示图像。我没有对代码进行任何更改。那么谁能告诉我这里发生了什么..?

<cfimage source="#attributes.image#" action="write" destination="../images/new_image.png" isBase64="yes" overwrite="true">

编辑 20/12: 今天,当我在工作时打开电脑时,它又开始工作了。我仍然不清楚昨天发生了什么。 Coldfusion 返回的错误是:“文件似乎不是 base64 编码的”,它绝对是,我检查了不止一次。我传递给 cfimage 标记的 base64 字符串包含标题,就像你描述的那样。

【问题讨论】:

  • 信息还不够多。我们需要查看 a) 您收到的确切错误消息和 b) #attributes.image# 的物理值是什么(在此标记调用之前 cfabort,将其转储到屏幕上,将其添加到此问题描述中)

标签: image html coldfusion base64 fileapi


【解决方案1】:

您可以跳过&lt;cfimage&gt; 标记并使用&lt;cffile&gt; 标记,如果您所做的只是按原样保存它。 &lt;cfimage&gt; 增加了一堆开销,并且仅在您打算在保存之前修改图像时才有用。

例如。

<cffile action="write" file="C:\temp\test-image.jpg" output="#binaryDecode(base64data)#" addnewline="no">

或者尝试...

<cfset myImage = imageReadBase64(base64data)>
<cfimage action="write" source="#myImage#" destination="C:\temp\test-image.jpg">

你的 base64 字符串有标题吗?

例如。 "data:image/jpg;base64,..." 在字符串的开头?

从内存来看,imageReadBase64() 支持带和不带标头的 base64 字符串。

http://www.cfquickdocs.com/cf9/#BinaryDecode

http://www.cfquickdocs.com/cf9/#ImageReadBase64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2012-10-05
    相关资源
    最近更新 更多