The following code snippet helps you for uploading image and get base64 data uri
In your view you should have the following filefield component of sencha touch
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'
        },
    ]
}
});
and your controller look like this: 
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);
        }
    },
});