IformFile в контроллере действия принимает значение как ноль, значение передается в контроллер действия с помощью запроса ajax - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь получить значение, переданное из запроса ajax в один из методов в контроллере, но файлы IFormFile каждый раз равны нулю. Вот мой ajax запрос:

 uploadFile: function (field, value) 
{
    var me = this;
    var view = me.getView();
    var fileuploadControl = me.lookupReference('ImportFile');
    var file = fileuploadControl.fileInputEl.el.dom.files[0];   
    var param = new FormData();
    param.append('files', file);
    var ajax = Ext.Ajax.request(
  {

        url: './../XYController/ImportCSVFile',
                data: param,
                method: 'POST',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                headers: { 'accept': '*/*' },
                processData: true,
                success: function (response, options) {
                    var result = JSON.parse(response.responseText);
                    if (mask) {
                        mask.destroy();
                    }   
                    Ext.Msg.alert("File Upload Successful");
   }

});

},

А это мой контроллер действий:

[HttpPost]
[Route("XYController/ImportCSVFile")]
public IActionResult ImportCSVFile(IFormFile files)
{
  if(files!=null)
   {
    //do something
   }
}

1 Ответ

0 голосов
/ 08 января 2020

Для загрузки файла contenttype необходимо установить на false вместе с опцией processData. В противном случае jQuery не увидит это как загрузку файла:

processData: false,
contentType: false,

См. Примеры кода из здесь , которые должны быть одинаковыми, независимо от использования Ext JS или другого Jquery библиотека-обертка

...