gpt4 book ai didi

javascript - 通过ajax发送base64图像数据到cfc

转载 作者:行者123 更新时间:2023-12-01 05:36:52 24 4
gpt4 key购买 nike

我正在使用 html2canvas.js 创建 <canvas>来自页面上 div 的图像。我想要做的是通过 ajax 将渲染的 base64 图像发送到 cfc,这样我实际上可以将图像保存到服务器上的文件夹并将文件路径返回到页面。

我遇到的问题是,当我将 Base64 编码数据发送到 cfc 时,cfc 会解释该数据,但数据中存在多个“[无效]”实例。

如果我只是将图像发布到 DOM,则图像渲染得很好。下面是一个要点链接,其中包含创建的普通镜像与我从传递到 cfc 的参数中转储的镜像: https://gist.github.com/ronnieduke/d83dfb3e31677191f88e

这是我正在运行的 Ajax(其中 img.src 是上面链接中发布的 Canvas 数据的结果)

var image = new Image();
image.id = 'pic';
// This results in the base64 data posted in image-normal.txt in the gist
image.src = canvas.toDataURL("image/png");

var data = new FormData();
data.append('imgData',image.src);

// Genrate images in cfc
$.ajax({
url: 'my.cfc?method=generateImage',
type:'POST',
data:data,
dataType:'JSON',
processData: false,
cache:false,
async:false,
contentType: false,
success:function(data){
console.log(data);
},
error:function(result){
alert(result.responseText);
}
});

这是我的 cfc:

<cffunction name="generateImage" output="true" access="remote" returnFormat="JSON">
<cfargument name="imgData" required="true" type="string">

<cfset request.acceptExt = 'image/jpg,image/gif,image/png' />

<cfset image = imageReadBase64(arguments.imageData)>

<cfimage
action="write"
destination="image.png"
source="#image#"
overwrite="yes"
>

发生的事情是 imageReadBase64()函数抛出错误,无法读取 PNG 数据。当我转储arguments.imgData时就在那时,我得到了上面要点中的 img-cfc.txt 中发布的结果。这就是包含所有[无效]实例的内容。

我发现有趣的是,当仔细比较两个版本的base64图像时,我注意到无论哪里有cfc版本中的[INVALID],字母“QSS”(在各种情况下)都会出现在普通版本中。

例如:

正常: ...6s9QSSpN...

从 cfc 参数中转储: ...6s9[INVALID]pN...

<小时/>

正常: ...CwKGgwqsSH7Qyq1g...

从 cfc 参数中转储: ...CwKGgw[INVALID]H7Qyq1g...

我希望特殊字符或其他东西会出现类似的情况,但我不确定“QSS”与任何东西有什么关系。

我在JS端和CFC端都尝试了各种不同的编码/解码,但没有任何效果。任何想法或见解将不胜感激!

提前致谢,

更新:事实上,问题在于“QSS”是 Mura 中针对 XSS 的变量。当我在 settings.ini 中添加字段名称作为异常(exception)后,数据就正常显示了。

最佳答案

问题实际上是“QSS”是 Mura 中针对 XSS 的变量。当我在 settings.ini 中添加字段名称作为异常(exception)后,数据就正常显示了。

J. Dean 的更新settings.ini.cfm 行示例:

scriptprotectexceptions=eventid,body

这将告诉 Mura 在执行 XSS 黑名单时忽略这些字段。就我而言,eventid 字段有很长的字符串,其中恰好有 QSS,导致我间歇性地头痛。

关于javascript - 通过ajax发送base64图像数据到cfc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com