Ext JS无法获取要上传的文件

时间:2013-02-07 08:58:43

标签: javascript extjs

我正在使用Ext JS 3.4并且在从表单上传文件时遇到问题 PHP脚本无法接收文件数据(甚至只使用 print_r($ _ FILES),它应该显示任何文件或错误)。

这是我的代码

var editOrganisationForm = new Ext.FormPanel({
    url: 'appsrv/users_json.php',
    labelWidth: 75,
    border:false,
    width: 350,
    items: {
        xtype:'tabpanel',
        layoutOnTabChange: true,
        deferredRender:true, 
        border: false,
        activeTab: 0,
        defaults: {autoHeight:true, bodyStyle:'padding:10px; border: 0', bodyBorder: false}, 
        items:[{
            title:'Organisation Info',
            layout: 'form',
            fileUpload: true,
            defaults: {width: 230},
            defaultType: 'textfield',
            items: [
                {xtype: 'hidden', name: 'id'},
                {fieldLabel: 'Organisation', name: 'organisation', allowBlank:false},
                {
                    fieldLabel: 'Logo',
                    name: 'org_logo',
                    id: 'org_logo',
                    inputType: 'file',
                    allowBlank:true
                },
                {
                    fieldLabel: 'Theme',
                    name: 'org_theme',
                    id: 'org_theme',
                    store: [['val1', 'First Value'], ['val2', 'Second Value']],
                    xtype: 'combo',
                    allowBlank: false,
                    forceSelection: true,
                    valueField:'id',
                    displayField:'name'
                }
            ]
        }]
    }
});

var winOrg = new Ext.Window({
        title: 'Edit Organisation',
        layout:'fit',
        width:400,
        height:215,
        closeAction: 'hide',
        plain: false,
        modal: true,
        shadow: true,
        items: [editOrganisationForm],
        buttons: [{
            text:'Save',
            handler: function() {
                editOrganisationForm.getForm().submit({
                    method: 'POST',
                    waitTitle: 'Please Wait...',
                    waitMsg: 'Saving Changes',
                    url: 'appsrv/users_json.php',
                    params: {cmd: "addOrg"},
                    success: function() {
                        Ext.Msg.alert('Complete','Your changes have been saved');
                        tree.root.reload();
                        winOrg.hide();
                    },
                    failure: function(form, action) {                   
                        if (action.failureType == 'server') {
                            obj = Ext.util.JSON.decode(action.response.responseText);
                            Ext.Msg.alert('Oops!', obj.errors.reason);
                        } else if (action.failureType == 'client') {
                            Ext.Msg.alert('Sorry', 'Please ensure all required fields have been completed');
                        } else {
                            Ext.Msg.alert('Sorry','An error occurred');
                        }
                    }
                });
            },
            disabled: false
        }]
});

2 个答案:

答案 0 :(得分:2)

这是我解决了它 fileUpload:true是正确的,但我把它放在了错误的对象中,它应该是在配置对象的形式而不是形式> panel> items object

答案 1 :(得分:1)

在表单配置对象

中包含isUpload:true