7

我有 Sencha Ext JS 应用程序,我使用File表单字段 ( Ext.form.field.File) 来上传文件。它工作正常,但我希望用户能够一次选择多个文件进行上传,例如在 Dropbox.com 上。我有另一个非 Sencha 站点(在其中我可以直接控制 HTML),我通过使用multipleINPUT 元素的属性解决了这个问题:

  <input type="file" name="files" multiple>

然而,Sencha 本身不支持文件上传字段中的多个文件,至少在当前版本 (4.1) 中是这样。也许可以更改 Sencha for <input>element 发出的 HTML 输出,但我不确定如何。

4

2 回答 2

4

您可以创建一个 xtype:

Ext.define('fileupload',{
    extend: 'Ext.form.field.Text'
    ,alias: 'widget.fileupload'
    ,inputType: 'file'
    ,listeners: {
        render: function (me, eOpts) {
            var el = Ext.get(me.id+'-inputEl');
            el.set({
                size: me.inputSize || 1
            });
            if(me.multiple) {
                el.set({
                    multiple: 'multiple'
                });
            }
        }
    }
});

并以您的形式使用它:

,items: [{
        xtype: 'fileupload'
        ,vtype: 'file'
        ,multiple: true // multiupload (multiple attr)
        ,acceptMimes: ['doc', 'xls', 'xlsx', 'pdf', 'zip', 'rar'] // file types
        ,acceptSize: 2048
        ,fieldLabel: 'File <span class="gray">(doc, xls, xlsx, pdf, zip, rar; 2 MB max)</span>'
        ,inputSize: 76 // size attr
        ,msgTarget: 'under'
        ,name: 'filesToUpload[]'
    }]

请参阅githab上的示例

于 2013-02-16T05:58:30.920 回答