gpt4 book ai didi

javascript - 如何使用经典 ASP 保存 Canvas 图像?

转载 作者:行者123 更新时间:2023-12-04 14:48:25 24 4
gpt4 key购买 nike

我有点卡在这里。我知道我可以使用 canvas.toDataURL 生成一个 base64 编码的字符串,以传递给我服务器上的经典 ASP 页面。但是我似乎找不到答案的问题是如何处理这些数据,以便我可以将它保存在我的服务器上的某个地方。

因此,使用我的 HTML 页面上的这段代码,我提取了 Canvas 数据(我从 StackOverflow 的另一篇文章中提取了这个数据):

var dataURL = renderedCanvas.toDataURL("image/png");    
dataURL = dataURL.replace('data:image/png;base64,', '');

var areturn = $.ajax({
url: "http://127.0.0.1/mySite/saveImage.asp",
type: "POST",
data: '{ "imageData" : "' + dataURL + '" }',
dataType: "json",
beforeSend: function(x) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
}).done(function(result) {
console.log("Success Done!\n" + result);
}).always(function(data) {
console.log("Always:\n" + data.responseText);
});

但是我现在不清楚一旦我在服务器端如何处理数据......我可以拉 Request.Form 元素,但我似乎找不到一个好的方法来解码它,或者甚至将其输出为二进制文件...我想我听说经典的 ASP 不擅长进行 base64 解码,在另一个测试中我确实找到了一个可以进行 base64 解码的函数,但我不知道如果它真的有效,但它确实需要很长时间才能运行。
我还在这里找到了这个链接: base64 image decoder for ASP classic ,但我猜这是 Microsoft 不建议使用的 32 位组件……我想我正在向社区寻求有关将 html5 Canvas 图像保存到服务器上的建议。

最佳答案

您可以使用指定 bin.base64 的 XML 元素通过 DomDocument 创建的数据类型编码/解码 Base64 数据的实例。
然后您可以使用 Stream 将获得的二进制文件保存到磁盘。目的。这两个库都支持 64 位。假设您发送的内容将在服务器端的 Request 集合(没有 json 的经典 post 方法等)中可用,那么下面的代码可以解决问题,或者在最坏的情况下,我相信这会给您带来洞察力。

saveImage.asp

Function Base64Data2Stream(sData)
Set Base64Data2Stream = Server.CreateObject("Adodb.Stream")
Base64Data2Stream.Type = 1 'adTypeBinary
Base64Data2Stream.Open
With Server.CreateObject("MSXML2.DomDocument.6.0").createElement("b64")
.dataType = "bin.base64"
.text = sData
Base64Data2Stream.Write .nodeTypedValue 'write bytes of decoded base64 to stream
Base64Data2Stream.Position = 0
End With
End Function

Dim CanvasStream
Set CanvasStream = Base64Data2Stream(Request.Form("imageData"))

'Write binary to Response Stream
'Response.BinaryWrite CanvasStream.Read

'Write binary to File
CanvasStream.SaveToFile Server.Mappath("imgFileFromCanvas.png"), 2 'adSaveCreateOverWrite

关于javascript - 如何使用经典 ASP 保存 Canvas 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12899590/

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