使用phonegap / cordova将摄像头图像上传到服务器并访问服务器

时间:2015-07-03 23:26:07

标签: php android cordova phonegap-plugins

我是手机缺口/ cordova和PHP的新手。我创建了一个手机间隙/ cordova应用程序,将摄像头拍摄的图像上传到服务器。服务器根据一些时间戳代码唯一地重命名图像,并且必须将该图像名称返回给应用程序。我已经很好地上传了图像但我需要检索回由服务器回送的图像名称数据。在成功上传时,当我试图提醒服务器返回的数据时,它正在警告[对象对象]。我需要检索该值。如何我可以在下面给出客户端的代码。

var pictureSource;   // picture source
var destinationType; // sets the format of returned value

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
}

function clearCache() {
navigator.camera.cleanup();
}

var retries = 0;
function onCapturePhoto(fileURI) {
var win = function (r) {
    clearCache();
    retries = 0;
    alert('Done! message returned back is '+r);
}

var fail = function (error) {
    if (retries == 0) {
        retries ++
        setTimeout(function() {
            onCapturePhoto(fileURI)
        }, 1000)
    } else {
        retries = 0;
        clearCache();
        alert('Ups. Something wrong happens!');
    }
}

var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";

var params=new param();
param.client_device_id=device.uuid;

options.params = params; // if we need to send parameters to the server   request
var ft = new FileTransfer();
ft.upload(fileURI, encodeURI("http://host/upload.php"), win, fail, options);
}

function capturePhoto() {
navigator.camera.getPicture(onCapturePhoto, onFail, {
    quality: 100,
    destinationType: destinationType.FILE_URI
});
}

function onFail(message) {
alert('Failed because: ' + message);
}

upload.php的代码如下所示

<?php

if (!file_exists($_POST["client_device_id"])) {
    mkdir($_POST["client_device_id"], 0777, true);
}




 $date = new DateTime();
 $timeStamp=$date->getTimestamp() -1435930688;


move_uploaded_file($_FILES["file"]["tmp_name"], 'f:\\xampp\\htdocs\\FileUpload\\'.$_POST["client_device_id"]."\\".$timeStamp.'.jpg');
echo $timeStamp.".jpg";
?>

问题是,在设备成功上传后,它会提醒'完成!返回的消息是[object object]'。我需要获取值。请帮助我。

1 个答案:

答案 0 :(得分:0)

我自己想出了答案。只想与大家分享。我使用了alert(JSON.stringify(r))。现在我知道了返回的json对象的格式。知道我已经轻松打印出图像了name。 r.response 帮助我检索生成的图像名称。