0

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

功能测试(){警报(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");

            }

        }
    });
}
4

2 回答 2

1

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

  1. 你的照片拍成功了吗,你能看到吗?
  2. 检查您是否在服务器端接收数据。
  3. 如果第 1 点有问题,请检查您是否可以向您的服务器发送任何 REST 请求
  4. 检查您是否有足够的权限从您的移动应用程序访问互联网

这是我在一个示例中使用的工作代码。

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(请求 URI 太大)。您正在尝试发送到大图片。将此较低的图像质量修复到最低点并尝试发送它。如果它工作正常,那么这就是你的问题。

于 2013-04-17T09:52:49.600 回答
0

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

于 2015-03-24T14:00:47.607 回答