Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 将图像(base64字符串)作为文件流上载到Web API_Javascript_Angularjs_Asp.net Web Api_Upload_Image Upload - Fatal编程技术网

Javascript 将图像(base64字符串)作为文件流上载到Web API

Javascript 将图像(base64字符串)作为文件流上载到Web API,javascript,angularjs,asp.net-web-api,upload,image-upload,Javascript,Angularjs,Asp.net Web Api,Upload,Image Upload,我需要做的是:我有一个网页,可以使用网络摄像头拍摄照片。单击按钮时,它会将当前网络摄像头图像保存到HTML画布对象中。当我从canvas对象获取图像时,它显示为Base64编码字符串,例如 数据:图像/png;base64,IVBORW0KGGOAAAANSUHEUGAAAJYAAABWCAAAAAJ8HIL9AAGAELEQVR4xKY9B7HLD3HL 另一端是用于将照片保存到服务器的Web API服务。它是用C编写的,需要一个文件流 我的前端仅使用HTML和Javascript/Jquer

我需要做的是:我有一个网页,可以使用网络摄像头拍摄照片。单击按钮时,它会将当前网络摄像头图像保存到HTML画布对象中。当我从canvas对象获取图像时,它显示为Base64编码字符串,例如

数据:图像/png;base64,IVBORW0KGGOAAAANSUHEUGAAAJYAAABWCAAAAAJ8HIL9AAGAELEQVR4xKY9B7HLD3HL

另一端是用于将照片保存到服务器的Web API服务。它是用C编写的,需要一个文件流

我的前端仅使用HTML和Javascript/Jquery编写。我需要将图像以预期的格式发送到服务器

我的头撞在墙上已经两天了。似乎我需要做的是创建一个FormData对象,将图像附加到它,然后发送它。但这样做会给我一个200的错误。有些东西的形状不正确

当我使用file类型的输入元素并从磁盘上传文件时,这段代码工作得非常好。当我向它传递base64图像字符串时,它失败了。当我将图像字符串附加到FormData对象时,它失败了

factory.setPhoto = function (id, image) {
    var fd = new FormData();
    fd.append('file', image);
    return $http.post(baseUrl + '/' + id, fd, {
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined }
    }).then(function (results) {
        // whatever
    });
};

您应该将base64数据组件转换为原始二进制数据,然后将其传递给formdata。在本文中尝试一种解决方案