7

Fileフォームフィールド ( Ext.form.field.File) を使用してファイルをアップロードするSencha Ext JS アプリケーションがあります。問題なく動作していますが、たとえば Dropbox.com のように、ユーザーが複数のファイルを一度に選択してアップロードできるようにしたいと考えています。Sencha 以外の別のサイト (HTML を直接制御していた) がmultipleあり、INPUT 要素の属性を使用してこの問題を解決しました。

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

ただし、Sencha は、少なくとも現在のバージョン (4.1) では、ファイル アップロード フィールドで複数のファイルをネイティブにサポートしていません。Sencha が<input>要素に対して出力する 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[]'
    }]

github の例を参照してください

于 2013-02-16T05:58:30.920 に答える
2

このためのプラグインがあります: http://www.sencha.com/forum/showthread.php?205576-File-upload-with-drag-amp-drop-support&highlight=upload

デモ: http://harrydeluxe.github.com/extjs-ux/example/upload/upload.html

于 2013-02-16T05:55:32.130 に答える