2014-10-08 1 views
0

이제 서버에 일부 이미지를 업로드하는 데 문제가 있습니다. 내 코드는 iOS 기기에서 완벽하게 작동하지만 Android에서 업로드하려고 할 때 아무 것도하지 않습니다. filetransfer를하기 전에 ImageURI에 경고하려고하는데, 그렇게되지는 않습니다.Phonegap 파일 전송이 iOS에서 작동합니다. Android에서 아무 것도 발생하지 않습니다.

PhoneGap 버전 3.4.0 및 Sencha Touch 2.3으로 Build를 사용하고 있습니다. <gap:plugin name="org.apache.cordova.camera" />.

내 파일 업로드 스크립트는 다음과 같습니다 : 사람이 문제를 볼 수있는 경우

Ext.define('my_app.controller.Fileupload', { 
    extend: 'Ext.app.Controller', 
    requires: [ 
     'Ext.MessageBox' 
    ], 
    config: { 
     refs: { 
      fileupload: '#fileupload', 
      getLibraryImage: 'button[action=getLibraryImage]', 
      getCameraImage: 'button[action=getCameraImage]' 
     }, 
     control: { 
      getLibraryImage: { 
       tap: 'getLibraryImage' 
      }, 
      getCameraImage: { 
       tap: 'getCameraImage' 
      } 
     } 
    }, 
    getLibraryImage: function() { 

     navigator.camera.getPicture(this.fileupload, onFail, { 
      destinationType: Camera.DestinationType.FILE_URI, 
      sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
      allowEdit: true, 
      targetWidth: 800, 
      targetHeight: 800 
     }); 

     function onFail(message) { 
      alert('Failed because: ' + message); 
     } 

    }, 
    getCameraImage: function() { 

     navigator.camera.getPicture(this.fileupload, onFail, { 
      destinationType: Camera.DestinationType.FILE_URI, 
      sourceType: Camera.PictureSourceType.CAMERA, 
      quality: 100, 
      allowEdit: true, 
      targetWidth: 800, 
      targetHeight: 800 
     }); 

     function onFail(message) { 
      alert('Failed because: ' + message); 
     } 

    }, 
    fileupload: function(imageURI) { 

    alert(imageURI); 

     Ext.Viewport.setMasked({ 
      xtype: 'loadmask', 
      message: Loc.t('LOADMASK.FILEUPLOAD'), 
      styleHtmlContent: true, 
      indicator: true 
     }); 

     var options = new FileUploadOptions(); 
     options.fileKey = "file"; 
     options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1); 
     options.mimeType = "image/jpeg"; 

// if (Ext.os.is('Android')) { 
//  options.chunkedMode = true; 
// } 

     var user = JSON.parse(localStorage.getItem('user')); 

     var user_id = user.id; 
     var username = user.username; 

     var params = new Object(); 
     params.user_id = user_id; 
     params.username = username; 
     options.params = params; 

     var ft = new FileTransfer(); 
     ft.upload(imageURI, encodeURI("my_upload_uri"), win, fail, options); 

     function win(response) { 

      if (Ext.JSON.decode(response.response).error) { 

       Ext.Viewport.setMasked(false); 
       Ext.Msg.alert('my_app', Ext.JSON.decode(response.response).error); 

      } else { 


       my_app.app.getController('Basic').ProfileImages(); 
       Ext.Msg.alert('my_app', Ext.JSON.decode(response.response).success); 


      } 


     } 

     function fail(error) { 

      Ext.Viewport.setMasked(false); 

      alert("An error has occurred: Code = " + error.code); 
     } 

    } 
}); 

, 나는 정말 도움을 주셔서 감사하려는 config.xml에 나는 핵심 폰갭 카메라 플러그인을 사용! 미리 감사드립니다.

답변

0

PhoneGap 버전 3.6.3으로 업그레이드하면 문제가 해결됩니다.

관련 문제