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

时间:2015-04-01 22:34:36

标签: javascript php extjs sencha-touch-2

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

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

    ...

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

    ...

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

    ImportBtn: "adminMain #ImportBtn",

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

    ...

我查看了很多示例(例如this一个和this一个),但我无法使用它们。我相信后者可能也是为了更新版本的框架,但我现在无法更新,必须使用版本2.3

我想做的是以下内容:

  1. 让用户点击按钮
  2. 弹出一个对话窗口,用户可以在其中选择文件
  3. 选择后自动上传文件
  4. 使用文件
  5. 执行各种服务器端事务

    如何使用Sencha Touch 2.3实现这一目标?

1 个答案:

答案 0 :(得分:2)

尝试使用 xtype:'filefield'和'updatedata'事件

要选择文件,您可以编写类似这样的文件

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

选择文件后你就可以得到它(它在2.4中工作正常)

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

这里有更多关于filefield的信息 http://docs.sencha.com/touch/2.3.0/#!/api/Ext.field.File