2012-03-30 7 views
0

iam new sencha touch。イメージパスを使用してイメージをsencha touchのbase64文字列に変換するにはどうすればよいですか?

Iamは、そのプロジェクトで、画像をbase64文字列に変換する必要があります。iamは画像をアップロードし、iamは画像のfulllパスを取得しますが、iamは画像をbase64文字列に変換できません。

plzこの問題で私を助けてください。 iamが煎茶を訊いていることを確認してください

+0

あなたはサススタイルシートを使用していますか? –

答えて

0

どのようにファイルにアクセスしますか?どこから画像が来るのですか?彼らがカメラか写真ギャラリーからのものであれば、Phonegapがそれらを得る最良の方法です。この場合Base64エンコーディングはPGによって解決されます。あなたが純粋なjsでそれを解決しようとしているなら、あなたはそれについてもう少し作業をする必要があります。 Senchaはbase64エンコーディングのための関数を提供しません。あなたのプロジェクトにいくつかの機能を追加するのが最も良い方法です。 Web上にはjavascriptで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); 
     } 
    }, 
});