PhoneGap照片到Google App Engine

时间:2014-02-18 16:33:44

标签: google-app-engine cordova google-cloud-storage

我正在尝试将照片jpg从PhoneGap应用(javascript)上传到Google App Engine(php),将参数存储在数据库中,将照片存储到Google云端存储中。除照片文件传输外所有工作。

我正在使用的上传功能是PhoneGap的文件传输示例http://docs.phonegap.com/en/edge/cordova_file_file.md.html#FileTransfer的典型代表。

function uploadPhoto(imageURI) {

    // imageURI is photo local url file:///Users/me/Library/...etc ... .jpg 
    // from navigator.camera.getPicture function 

    // prepare post variables 
    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";
    var params = new Object();
    params.foo = "foo";
    options.params = params;
    options.chunkedMode = false;

    // upload image and option  
    var ft = new FileTransfer();
    ft.upload(imageURI, 'http://myapphere.appspot.com/php/myphoto.php', function(r){
        // do stuff with r.response
    },function(error){
        // error
    },options,true);
}  

在Google App Engine服务器上,参数变量通过正常 - 似乎没有将它传递给$ _FILE文件。

/* php/myphoto.php */ 

// option variables are passed - this works
$foo = $_POST["foo"];

// but it seems the $_FILES is empty? 
$gs_name = $_FILES["file"]["tmp_name"];  // <-- not transferring? 
$fileName = 'test.jpg';
$moveResult = move_uploaded_file($gs_name, "gs://mybucket/".$fileName); 

文件test.jpg存储在mybucket中(一个小的空白二进制/八位字节)。作为测试,我在GAE上创建了一个HTML表单来上传文件图像和move_upload_file $ _FILE到mybucket,它可以工作。这是从javascript应用程序转移$ _FILES,我无法弄清楚。 (我知道Google Cloud Storage JSON API objects.insert,但在这里我想从phonegap html / javascript转到Google App Engine PHP页面来处理传递的数据)。

0 个答案:

没有答案