我使用$阿贾克斯()来发送一个字符串,它被存储在一个表中的ColdFusion服务器。 当我后来查询,并尝试使用这些数据,我得到一个错误; “空封闭式例外:3字节的UTF-8序列的无效字节2”。
首先,我抓住从DOM的SVG并将其发送到操作页面。 它应该只是一个字符串,对不对?
var lclSVG = $('#myDiv')[0].innerHTML; // SVG Code (XML?)
$.ajax({
url: "myAction.cfm",
type: "POST",
data: ({myInfo: lclSVG}),
});
在myAction.cfm页面我的数据更新到表。
<CFQUERY NAME="postSVG">
UPDATE myTable
SET svg = '#form.myInfo#'
WHERE ID = 1
</CFQUERY>
SVG2PNG.cfm:当我尝试查询和使用SVG数据我得到一个错误“无效字节3字节UTF-8序列2”。 在.transcode线出现的错误。
<CFQUERY NAME="getSVG">
SELECT svg
FROM myTable
WHERE ordID = 1
</CFQUERY>
<cfset svg = getSVG.svg>
<cfscript>
transcoder = createObject("java", "org.apache.batik.transcoder.image.PNGTranscoder").init();
inputStream = createObject("java", "java.io.StringBufferInputStream").init(svg);
input = createObject("java", "org.apache.batik.transcoder.TranscoderInput").init(inputStream);
OutFile = expandPath("myTest2.png");
outputStream=CreateObject("java", "java.io.FileOutputStream").init(OutFile);
output=CreateObject("java", "org.apache.batik.transcoder.TranscoderOutput").init(outputStream);
transcoder.transcode(input, output);
outputStream.close();
</cfscript>
我用jQuery的AJAX方法了几次都没有太大的困难。 我在这里做得不对,我似乎无法得到它的句柄...