How to save canvas image using classic ASP?

后端 未结 2 1592
情书的邮戳
情书的邮戳 2021-01-03 06:20

I\'m a bit stuck here. I know that I can use the canvas.toDataURL to produce a base64 encoded string to pass to a classic ASP page on my server. But the problem I can\'t see

2条回答
  •  清歌不尽
    2021-01-03 06:51

    You could use an XML element specifying bin.base64 data type that created through a DomDocument instance to encoding / decoding Base64 data.
    Then you can save obtained binary to disk using a Stream object.
    Both of these libraries are 64 bit supported. Assuming the content you sent will be available in a Request collection (classic post methods without json etc.) on the server-side, following code solves the problem or at worst I'm sure that gives you insight.

    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
    

提交回复
热议问题