将base64图像发送到phonegap中的服务器

时间:2013-04-17 07:52:03

标签: jquery jquery-mobile base64 cordova

尝试通过restwebservice将base64映像发送到服务器。问题是我没有在logcat中得到任何错误而且它没有命中服务器。服务器网址是正确的。我使用webapp测试服务工作正常。但在phonegap它的问题

function Test(){         警报(imgByte);

/**imgByte is in base64 format -->pic.src = "data:image/png;base64," + imageURI;
imgByte = pic.src;*/

    $.ajax({
        type : "POST",
        url : IMGURL,
        data : {
            image : imgByte
        },
        delay : 3,
        dataType : "text",
        cache : false,
        error : function(xhr, ajaxOptions, thrownError) {
            debugger;
        },

        success : function(response, status, xhr) {
            alert("haiSuccess1");
            response = xhr.responseText;
            var responseArray = JSON.parse(response);
            if (responseArray.status == "success") {

                alert("haiSuccess");

            }

        }
    });
}

2 个答案:

答案 0 :(得分:1)

因为您使用的是Phonegap,所以跨域调用应该不是问题。

  1. 你拍的照片是否成功,你能看到吗?
  2. 检查您是否在服务器端接收数据。
  3. 如果点1出现问题,请检查是否可以向服务器发送任何REST请求
  4. 检查您是否有足够的权限通过移动应用访问互联网
  5. 这是我在我的一个例子中使用的工作代码。

    Javascript:

    navigator.camera.getPicture(success, fail, {quality: 45, sourceType: src});
    
    function success(imageData) {
        var url = some_location;
        var params = {image: imageData};
    
        // send the data
        $.post(url, params, function(data) {
            alert('sent');
            // Display the selected image on send complete
            $('#image').attr('src', 'data:image/jpeg;base64,' + params['image']);     
        });
    }
    
    function fail(error) { 
        alert(error); 
    }
    

    PHP:

    <?php 
        if ($_REQUEST['image']) {
            // convert the image data from base64
            $imgData = base64_decode($_REQUEST['image']);
    
            // rest of the code
        }
    ?>
    

    但我的猜测是你收到此错误:错误414(Request-URI太大)。你正试图发送到大图。要将较低的图像质量固定到最低点并尝试发送它。如果它正常工作,那么这就是你的问题。

答案 1 :(得分:0)

它不是Phonegap问题。默认情况下,您的Web服务器(在服务器上运行的服务器端代码),它们将传入数据大小(不是文件大小)限制为某个固定大小。你应该增加以使其发挥作用。