Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用.NET Web API保存ThreeJS屏幕截图_Javascript_C#_Asp.net Web Api_Three.js_Base64 - Fatal编程技术网

Javascript 无法使用.NET Web API保存ThreeJS屏幕截图

Javascript 无法使用.NET Web API保存ThreeJS屏幕截图,javascript,c#,asp.net-web-api,three.js,base64,Javascript,C#,Asp.net Web Api,Three.js,Base64,在过去的几天里,我一直在努力使用.NETWebAPI在服务器上保存ThreeJS的屏幕截图 我已经阅读了关于这个特定主题的所有可能的问题以及有关StackOverflow的相关问题,并尝试了这些建议 发行详情如下: 我成功地从renderer.domeElement.toDataUrl获取base64编码字符串,该字符串包含有效的threejs图像。 当我将此字符串原样传递给.NET WebAPI时,Convert.FromBase64String方法无法说出Base64字符串的无效长度或无效填

在过去的几天里,我一直在努力使用.NETWebAPI在服务器上保存ThreeJS的屏幕截图

我已经阅读了关于这个特定主题的所有可能的问题以及有关StackOverflow的相关问题,并尝试了这些建议

发行详情如下:

我成功地从renderer.domeElement.toDataUrl获取base64编码字符串,该字符串包含有效的threejs图像。 当我将此字符串原样传递给.NET WebAPI时,Convert.FromBase64String方法无法说出Base64字符串的无效长度或无效填充字符。我确保提取出数据:image/png;base64,传球前离场。 我尝试了很多方法来解决这个问题,比如添加填充字符以确保长度为mod 4,使用正则表达式提取正确的数据。我能够通过Convert.FromBase64String,并在服务器上将生成的字节数组保存为png。这导致了一个空白图像。 我还发现,当我使用chrome extension Advanced Rest客户端点击我的WebAPI并在发布字符串之前使用编码有效负载功能时,我能够成功地将图像保存在服务器上,并获得所需的图像。 看到这一点,我使用Javascript中的encodeURIComponent函数将base64字符串从我的web应用程序传递到WebAPI,但失败了,恢复了与我先前尝试相同的行为。 一个重要的观察结果是,在Encode有效负载的情况下,空白被消除了,但在encodeURIComponent的情况下,空白没有被消除。 我比较了encodeURIComponent和来自高级Rest客户端的Encode负载之间的字符串。虽然在较高的层次上,它们通过用转义序列替换特殊字符来做同样的事情,但它们之间仍然存在显著的差异。 请求有关此问题的帮助

我想知道是否有其他方法可以成功地将ThreeJSBase64字符串传递到.NET。 encodeURIComponent的编码和高级Rest客户端编码有效负载功能之间有什么区别

提前谢谢