Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
Android 超音速-如何张贴一个图像从手机的相机在一个多部分张贴_Android_Angularjs_Hybrid Mobile App_Steroids - Fatal编程技术网

Android 超音速-如何张贴一个图像从手机的相机在一个多部分张贴

Android 超音速-如何张贴一个图像从手机的相机在一个多部分张贴,android,angularjs,hybrid-mobile-app,steroids,Android,Angularjs,Hybrid Mobile App,Steroids,好的,下面是问题的概要: 我正在使用AppGyver类固醇和超音速与AngularJS联合开发一个Android混合应用程序,该应用程序的目标是我无法影响的API,不能改变它来解决我的问题 Appgyver超音速提供了一种使用手机摄像头拍照的方法,并为拍照后的结果提供了两个选项-您可以获取拍摄照片的文件url,也可以将照片作为数据url获取 我必须以一个post请求作为API的目标,该请求的表单数据中包含该文件。作为一种解决方案,我尝试将响应字符串加载到blob对象中,方法是将其中间转换为字节数

好的,下面是问题的概要:

我正在使用AppGyver类固醇和超音速与AngularJS联合开发一个Android混合应用程序,该应用程序的目标是我无法影响的API,不能改变它来解决我的问题

Appgyver超音速提供了一种使用手机摄像头拍照的方法,并为拍照后的结果提供了两个选项-您可以获取拍摄照片的文件url,也可以将照片作为数据url获取

我必须以一个post请求作为API的目标,该请求的表单数据中包含该文件。作为一种解决方案,我尝试将响应字符串加载到blob对象中,方法是将其中间转换为字节数组,然后发布所有这些内容,如下所示:

var options = {
    allowEdit: true,
    targetWidth: 300,
    targetHeight: 300,
    destinationType: "dataURL",
};

supersonic.media.camera.takePicture(options).then(function (result) {
    var imageGotten = result;

    var bytes = new Int16Array(imageGotten.length);
    for (var i = 0; i < imageGotten.length; i++) {
        bytes[i] = imageGotten.charCodeAt(i);
    }

    var imageToPost = new Blob([bytes], { type: "image/jpeg" });

    var formData = new FormData();
    formData.append('file', imageToPost);

    $http({
        url: "API_method_that_is_being_targeted",
        method: "POST",
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined },
        data: formData
    })
    .success(function (result) {
        //further logic
    });

});
从发布数据并从服务器获得成功结果的意义上讲,这是正常的。问题是,当我从服务器获取数据时,我收到的图像由于损坏而无法显示。API的管理员向我保证,如果我可以发布一个文件对象,而不是我现在发布的Blob对象,那么这个问题就会得到解决。但是,从我对这个主题的研究中可以看出,File对象可能有点错误,当然,它不能直接用javascript实例化,而只能从文件输入字段中获取,而Blob对象是从File继承的东西,因此,我发布其中一个或另一个都不重要


我有没有遗漏什么?如果有,你有什么建议来解决这个问题。提前谢谢大家。

你解决过这个问题吗?尝试做一些类似的事情,不完全是在它工作或不工作的时候,但不清楚为什么你会被腐蚀好的,我的也被腐蚀了,请告诉我你解决了这个问题:DI确实解决了它,但最终通过对API的更改。他们同意添加一个方法,接受数据URI,然后直接解码并保存为图像。是的,我想我也会这么做,我控制API,所以一切都很好。为回应干杯,很高兴你把它整理好了: