2012-02-28 16 views
1

こんにちは友人、チタン:サーバーの問題への画像アップロード

私はチタンでアプリを開発し、また、POSTメソッドを使用してサーバーにアップロード画像に機能を開発し、私はフォトギャラリーから写真を選択してに送信していていますサーバーは正常に応答できませんでした。また、は、画像名を45645.pngやメディアパラメータなどのようにパラメータとして送信しますが、は送信できません私は私の問題を解決する。

は、サーバーにアップロード画像を参照してください:http://mobile.tutsplus.com/tutorials/appcelerator/titanium-mobile-build-an-image-uploader/

//photo gallery for select photo 
function getPhotGallery() 
{ 
    Titanium.Media.openPhotoGallery({ 

    success:function(event) 
    { 
     //var cropRect = event.cropRect; 
     var image = event.media; 

     // set image view 
     Ti.API.debug('Our type was: '+event.mediaType); 
     if(event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) 
     { 
      uploadPhotoImageView.image = image; 

      UploadPhotoToServer(uploadPhotoImageView.image); 
     } 
     else 
     { 

     } 
     //Titanium.API.info('PHOTO GALLERY SUCCESS cropRect.x ' + cropRect.x + ' cropRect.y ' + cropRect.y + ' cropRect.height ' + cropRect.height + ' cropRect.width ' + cropRect.width); 
    }, 
    cancel:function() 
    { 

    }, 
    error:function(error) 
    { 
    }, 
    allowEditing:true, 
    //popoverView:popoverView, 
    //arrowDirection:arrowDirection, 
    mediaTypes:[Ti.Media.MEDIA_TYPE_PHOTO] 
    }); 

} 


//upload photo to server uisng POST method 
function UploadPhotoToServer(media) 
{ 
     //var filename = mobileNumber.value + '.png'; 
     var filename = '123456.png'; 

    if (Titanium.Network.online == true) 
    { 
     var imgUploadLoader = Titanium.Network.createHTTPClient(); 

      //open the client 
      imgUploadLoader.open('POST', 'http://projects.spinxweb.net/ContactsTracking/iphone-file-upload.aspx'); 

     // send the data 
     imgUploadLoader.send(
     { 
      media: media, 
      "name": filename 
     }); 

     imgUploadLoader.onerror = function(e) 
     { 
      Ti.API.info('IN ERROR ' + e.error); 
      alert('Sorry, we could not upload your photo! Please try again.'); 
     }; 

     imgUploadLoader.onload = function() 
     { 
      Ti.API.info('IN ONLOAD ' + this.status + ' readyState ' + this.readyState); 
      if(this.responseText != 'false') 
      { 
       var url = this.responseText; //set our url variable to the response     
       Ti.API.log('Upload image url:'+url);  
       //alert('Upload photo successfully'); 

       //getLoginData();          
      } 
      else 
      { 
       alert('Whoops, something failed in your upload script.');     
      }   
     }; 

     imgUploadLoader.onsendstream = function(e) 
     { 
      Ti.API.info('ONSENDSTREAM - PROGRESS: ' + e.progress); 
      if(Ti.Platform.osname == 'android') 
      { 

      } 
      else 
      { 

      } 
     }; 


    }  
    else 
    { 
    alert('You must have a valid Internet connection in order to upload this photo.'); 
    } 
} 

答えて

2

ない、これはあなたが探している正確に何ですが、私はこのコードの成功を持っていたかどうかわから:

eventSuccess : function (e) 
{ 
    var xhr = Ti.Network.createHTTPClient (); 
    xhr.open ("POST", 'yourserver.com/webservice.php'); 

    xhr.setTimeout (20000); 


    xhr.send ( 
    {   
    "CommandType" : "image", 
    "file"   : e.media, 
    "name"   : filename 
    }); 

    xhr.onload = function (e) 
    { 
    Ti.API.info ("image sent to server"); 
    } 
} 

この成功イベントがカメラから戻ってきたときに実行中です。イメージはサーバーに送信されます。

move_uploaded_file ($_FILES["file"]["tmp_name"], "incoming/images/" . $_FILES["file"]["name"]); 
+0

の助けに感謝しますが、私のために動作しないのが、私のようにメディアを送信したい@rogerlsmith私は、.NET Webサービス –

+0

を使用しています:

あなたは、このように、サーバ側で何かをする必要がありますネストされたparamは、ユーザー{image:media} ....の手がかりを示します。私の質問はここにありますhttp://stackoverflow.com/questions/10366838/how-to-send-attachments-images-and-nested-params-using-xhr-to-uplaoad-file-in –

関連する問題