Как установить тип содержимого multipart / form-data в extjs? - PullRequest
0 голосов
/ 20 июля 2011

Я использую extjs2.0.1. Я использую плагин filefield для функциональности загрузки файлов. Для кнопки «Загрузить» я хочу, чтобы тип контента был установлен как «multipart / form-data». Прямо сейчас в fiddler я вижу тип контента, установленный на Content-Type: application / x-www-form-urlencoded. Как мне этого добиться?

Мой код выглядит следующим образом:

Ext.onReady(function() {
Ext.QuickTips.init();
    var uploadFile={
        xtype : 'fieldset',
        title : 'Search',
        autoHeight : true,
        items : [{
                    xtype : 'fileuploadfield',
                    emptyText : 'select file',
                    fieldLabel : 'file',
                    id : 'file-path',
                    buttonCfg : {
                        text :  'browse'
                    }
                }],
        buttons : [{
                    text : 'upload',
                    handler : function() {
                        Path = fp.form.findField('file-path').getValue();
                        var box = Ext.MessageBox.wait('uploading file ','please_wait');

                        if (fp.getForm().isValid()) {
                            Ext.Ajax.request({
                                url : 'uploadFile.jsp',
                                params:'file-path='+Path,
                                method : 'POST',
                                waitMsg : 'Uploading your file...',
                                success : function(response) {
                                    box.hide();
                                    Ext.Msg.alert("Success","Upload Successfull!");

                                },
                                failure : function() {
                                    box.hide();
                                    Ext.Msg.alert("Failure","Upload Failed!");
                                }
                            });
                        }
                    }

                }]


};
var fp = new Ext.FormPanel({
            autoHeight : true,
            bodyPadding: 10,
            margin : '0 0 20',
            frame : 'true',
            renderTo : 'addvoiceline',
            items : [
                       uploadFile
                    ]        
        });

});

Ответы [ 2 ]

0 голосов
/ 28 января 2015

использовать headers свойство.

обычная конфигурация прокси:

proxy: {
        type: 'ajax',
        url: "../search",
        actionMethods:  {create: "POST", read: "POST", update: "POST", destroy: "POST"},
        headers: { 'Content-Type': 'multipart/form-data' },
        limitParam: false,
        startParam: false,
        pageParam: false,
        extraParams: JSON.stringify({
        rows: pageSize,
        role: "Admin",
        index: myIndex,
        question: searchPhrase
    })

установите его заголовки, как показано ниже:

headers: { 'Content-Type': 'multipart/form-data' },

Как часть вашего кода, оно выглядит так (headers добавлено):

Ext.Ajax.request({
   url : 'uploadFile.jsp',
   params:'file-path='+Path,
   method : 'POST',
   headers: { 'Content-Type': 'multipart/form-data' },
   waitMsg : 'Uploading your file...',
   success : function(response) {
      box.hide();
      Ext.Msg.alert("Success","Upload Successfull!");
   },
   failure : function() {
       box.hide();
       Ext.Msg.alert("Failure","Upload Failed!");
   }
});
0 голосов
/ 20 июля 2011

В extjs3 я бы сделал это, установив для fileUpload значение true в форме конфигурации.Может быть, это будет работать в extjs2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...