在 Sencha Touch 2.3 中选择文件后自动上传文件

Auto-File upload after selecting file in Sencha Touch 2.3

我正在帮助开发一个 Sencha Touch 2.3 应用程序。我想要实现的功能之一是上传一个文件,然后我在后端使用 PHP 做各种事情。但是,我找不到真正完成上传的方法 (甚至无法显示一个对话框 select 要上传的文件!)

我有一个导航栏,如下所示:

    ...

    navigationBar: {
        docked: 'top',
        id: 'mainAdminToolbar',
        items: [
            { ... 
            },
            {
                align: 'right',
                hidden: true,
                text: 'Import',
                itemId: 'ImportBtn',
            }
        ]

    ...

在我的主控制器文件中,我有以下内容:

    ImportBtn: "adminMain #ImportBtn",

    "adminMain #ImportBtn": {
        tap: "onImportTap"
    },

    ...

我看了很多示例(例如 this one and this 一个),但我可以让其中的 none 工作。我相信后者也可能适用于更新版本的框架,但我现在无法更新并且必须使用版本 2.3

我想做的是:

  1. 让用户点击按钮
  2. 弹出对话框 window,用户可以在其中 select 文件
  3. selected
  4. 后自动上传文件
  5. 使用文件做各种服务器端的事情

如何使用 Sencha Touch 2.3 实现此目的?

尝试使用 xtype: 'filefield' 并且它是 'updatedata' 事件

到select文件你可以这样写

{
    xtype: 'filefield',
    itemId: 'ImportBtn',
    listeners: {
        change: function (button, newValue, oldValue, eOpts) {
            alert(newValue);
        }
    }
}

在 select 下载文件后,你可以用这个获取它(它在 2.4 中工作正常)

var file = [your-filefield].getComponent().input.dom.files[0];

这里有更多关于文件字段的内容 http://docs.sencha.com/touch/2.3.0/#!/api/Ext.field.File