2012-03-30 2 views
0

iam new sencha touch.sencha touch에서 이미지 경로 (이미지 경로 사용)를 base64 문자열로 변환하는 방법은 무엇입니까?

Iam이 프로젝트에서 base64 문자열로 이미지를 변환해야하고, iam이 이미지를 업로드해야하며 iam이 이미지의 fulll 경로를 얻지 만 iam이 base64 문자열로 이미지를 변환 할 수 없습니다.

plz이 호에 도움이됩니다. iam이 Sencha Touch에서 묻는 것을 확인하십시오.

+0

당신이 말대꾸 스타일 시트를 사용하고 있습니까? –

답변

0

어떻게 파일에 액세스합니까? 이미지는 어디에서 오는가? 그들이 카메라 또는 사진 갤러리에서 나온 경우 Phonegap이 최상의 방법입니다. 이 경우 Base64 인코딩은 PG에 의해 해결됩니다. 당신이 순수한 js에서 그것을 해결하려고한다면 당신은 그것에 대해 더 많은 작업을 할 필요가 있습니다. Sencha는 base64 인코딩 기능을 제공하지 않습니다. 따라서 프로젝트에 일부 기능을 추가하는 것이 가장 좋습니다. 웹에서 자바 스크립트에서 base64 인코딩을 수행하는 방법에 대한 많은 리소스가 있습니다. 예 : 다음 코드는 이미지를 업로드를하는 데 도움이 여기에 토론 Base64 encoding and decoding in client-side Javascript

0

을보고 base64로 데이터 URI를보기에
당신이 엽차 터치의 다음 FileField와 구성 요소가 있어야 얻을

Ext.define('MyApp.view.Main', { 
extend: 'Ext.form.Panel', 
xtype: 'main', 
requires: [ 
    'Ext.TitleBar', 
    'Ext.Video' 
], 
config: { 
    tabBarPosition: 'bottom', 

    items: [ 
     { 
      xtype: 'filefield', 
      id: 'idfilefieldSample', 
      name: 'filefieldSample', 
      accept: 'image' 
     }, 
    ] 
} 

});

및 컨트롤러는 다음과 같다 :

Ext.define('MyApp.controller.MainController', { 
    extend: 'Ext.app.Controller', 
    config:{ 
     control:{ 
      'filefield[name=filefieldSample]': { 
       change: 'onChangefilefield', 
      }, 
     } 
    }, 
    onChangefilefield: function(filefield, newData, oldData, eOpts) 
    { 
     var filesSelected = Ext.getCmp('idfilefieldSample').getComponent().input.dom.files; 
     if (filesSelected.length > 0) 
     { 
      var fileToLoad = filesSelected[0]; 
      var fileReader = new FileReader(); 
      fileReader.onload = function(fileLoadedEvent) 
      { 
       var srcData = fileLoadedEvent.target.result; 
       console.log(srcData); 
      } 
      fileReader.readAsDataURL(fileToLoad); 
     } 
    }, 
});