POST请求将图像从Titanium Android App上传到Google App Engine无法正确读取

时间:2014-06-06 22:12:26

标签: android google-app-engine titanium

以下是该应用的相关代码:

buttonUpload.addEventListener('click',function(e) {
    var url = "http://media-surveyer.appspot.com/up_test.php";
    var client = Ti.Network.createHTTPClient({
         // function called when the response data is available
         onload : function(e) {         
             alert(this.responseText);
         },
         // function called when an error occurs, including a timeout
         onerror : function(e) {         
             alert(e.error);
         },
         timeout : 60000  // in milliseconds
    });
     // Prepare the connection.
     client.open("POST", url);

     //get files    
    var file = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,self.imF);
    var img_blob = file.read();  

     // Send the request.        
     client.send({
        site_pic_file: img_blob,
        site_name: self.siteName,
        site_lat: self.lat,
        site_lon: self.lon,
        site_sound_link: self.sF,
        site_pic_name: self.imF     
     });
});

我已经把up_test.php归结为:

<?php

ini_set('display_errors', 'On');

echo $_POST['site_name'];

?>

如果我在常规服务器上使用它,它会按预期工作。但是当我尝试在GAE上运行这个完全相同的文件时,我得到了

Undefined index: site_name in /base/data/home/apps/s~media-surveyer/1.376371110211879710/up_test.php on line 5

图像只有几MB,所以它不应该达到GAE的最大HTTP请求,我认为是32 MB。并且请求仅在几秒钟之后返回,因此它不会超时。所以我有点无法解释为什么这在我的普通学校服务器而不是GAE上工作。

PS:

从POST数据中删除blob使其工作,所以它是关于它的大小或格式或其他东西。

0 个答案:

没有答案