EXTJS MVC中的文件上载字段

时间:2012-11-07 13:09:17

标签: file-upload extjs4 extjs4.1 extjs-mvc

我的表单包含各种文本字段和组合框,以及fileupload字段。文件正在成功上传,但是当我尝试访问其他表单字段时,它们在firebug中的post参数中看不到。控制器的代码如下:

uploadFile : function(button) {

    **var form = button.up('form');
    var Title = form.down('Title');
    console.log(Title);** // This returns null

    if (form.getForm().isValid()) {
        form.getForm().submit({

            url : 'data/Downloads.aspx',
            waitMsg : 'Saving the file...',

            params : {
                mode : 'UPLOADFILE',
                client : SYSTEM.CLIENT
            },

            success : function(f, a) {
                Ext.Ajax.request({

                    url : 'data/Downloads.aspx',
                    params : {
                        mode : 'SAVE',
                        fileName : a.result.fileName

                    },

                    success : function() {
                        this.mWin = Ext.create('Campus.view.GenMessage');
                        this.mWin.addMessage(true, LANG.SUCT, LANG.SUCTxt2);
                    },

                    failure : function() {

                    }
                });

            },

            failure : function() {

            }
        })
    }
},

如何访问其他表单字段并将其发送到服务器。

2 个答案:

答案 0 :(得分:2)

我不太关注你在做什么。你似乎提交表单,然后你正在对服务器进行ajax调用???

无论如何,所有表单字段都与文件输入一起发送到服务器。由于文件上传,框架不会像往常一样使用ajax提交表单,请参阅以下文档:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.form.Basic-method-hasUpload

答案 1 :(得分:0)

感谢您的指导dbrin。

实际上,我试图上传文档,同时将有关文件的信息保存在数据库中。而且,这就是我试图提出AJAX请求的原因。但是,这就是我所做的:

uploadFile : function(button) {

        var form = button.up('form');

        if (form.getForm().isValid()) {
            form.getForm().submit({

                url : 'data/Downloads.aspx',
                waitMsg : 'Saving the file...',

                params : {
                    mode : 'UPLOADFILE',
                    client : SYSTEM.CLIENT

                },

                success : function(form, a) {
                    this.mWin = Ext.create('App.view.GenMessage');
                    this.mWin.addMessage(true, LANG.SUCT, LANG.SUCTxt1);


                },

                failure : function() {

                }
            })
        }
    },