如何从使用Titanium开发的iPhone应用程序上传图像

时间:2010-03-28 09:56:49

标签: php image iphone-sdk-3.0 titanium

我终于开始使用Titanium Mobile开发iPhone应用程序了。现在我遇到的问题是,我能够运行应用程序,应用程序也将图像发送到服务器。但我无法看到上传到服务器的文件。我已粘贴iPhone应用程序的代码将图像发送到服务器,以及将从应用程序接收文件的PHP文件。

var win = Titanium.UI.currentWindow;

var ind=Titanium.UI.createProgressBar({
width:200,
height:50,
min:0,
max:1,
value:0,
style:Titanium.UI.iPhone.ProgressBarStyle.PLAIN,
top:10,
message:'Uploading Image',
font:{fontSize:12, fontWeight:'bold'},
color:'#888'
});

win.add(ind);
ind.show();

Titanium.Media.openPhotoGallery({

success:function(event)
{
    Ti.API.info("success! event: " + JSON.stringify(event));
    var image = event.media;

    var xhr = Titanium.Network.createHTTPClient();

    xhr.onerror = function(e)
    {
        Ti.API.info('IN ERROR ' + e.error);
    };
    xhr.onload = function()
    {
        Ti.API.info('IN ONLOAD ' + this.status + ' readyState ' + this.readyState);
    };
    xhr.onsendstream = function(e)
    {
        ind.value = e.progress ;
        Ti.API.info('ONSENDSTREAM - PROGRESS: ' + e.progress+' '+this.status+' '+this.readyState);
    };
    // open the client
    xhr.open('POST','http://www.myserver.com/tmp/upload2.php');
    xhr.setRequestHeader("Connection", "close");
    // send the data
    xhr.send({media:image});

},
cancel:function()
{

},
error:function(error)
{
},
allowImageEditing:true
});

这是服务器上的PHP代码:http://www.pastie.org/891050

我不确定我哪里出错了。请帮我解决这个问题。如果您需要更多信息,我们愿意提供。

1 个答案:

答案 0 :(得分:2)

使用以下Php代码:

$target_path = "uploads/";

$target_path = $target_path .  $_FILES['media']['name']; 

if(move_uploaded_file($_FILES['media']['tmp_name'],$target_path)) {
echo "The file ".  basename( $_FILES['media']['name']). 
" has been uploaded";
} 
else
{
echo "There was an error uploading the file, please try again!";
}