以下是该应用的相关代码:
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使其工作,所以它是关于它的大小或格式或其他东西。