Javascript .NETCore如何使用AJAX提交带有文件的表单?

Javascript .NETCore如何使用AJAX提交带有文件的表单?,javascript,jquery,ajax,asp.net-core,Javascript,Jquery,Ajax,Asp.net Core,我有一个拖放的表单。使用插件 该代码创建一个自动触发上载的拖放 <div class="form-group g-mb-30"> <label class="g-mb-10" for="inputGroup-3_1">Image *</label> <div class="g-pos-rel"> <span class="g-pos-abs g-top-0 g-right-0 d-block g-width-4

我有一个拖放的表单。使用插件

该代码创建一个自动触发上载的拖放

<div class="form-group g-mb-30">
    <label class="g-mb-10" for="inputGroup-3_1">Image *</label>
    <div class="g-pos-rel">
        <span class="g-pos-abs g-top-0 g-right-0 d-block g-width-40 h-100 opacity-0 g-opacity-1--success">
           <i class="hs-admin-check g-absolute-centered g-font-size-default g-color-lightblue-v3"></i>
        </span>
        <input class="js-file-attachment" name="fileAttachment2[]" type="file" id="ka-file">
    </div>
</div>
我通过Id获取元素并发送数据。我知道我正在发送数据,因为在我的控制台日志中,在函数
beforeSend
中,我得到了输出

在我的控制器中,我接收到这样的数据

    [HttpPost]
    public async Task<IActionResult> Upload(IFormFile file)
    {
        if(file == null)
        {
            return Ok(200);
        }
    }
[HttpPost]
公共异步任务上载(IFormFile)
{
if(file==null)
{
返回Ok(200);
}
}

但是我的文件总是
null
。我不确定我遗漏了什么。

我使用它上载文件。它还可以帮助您获取多个文件,只需在您的按钮单击事件中调用
SendImage()

function SendImage() {
    var fileUpload = $("#files").get(0);
    var files = fileUpload.files;
    var data = new FormData();
    for (var i = 0; i < files.length; i++) {
        data.append(files[i].name, files[i]);
    }
    $.ajax({
        type: "POST",
        url: "/FileUpload/Upload/",
        contentType: false,
        processData: false,
        data: data,
        success: function (data) {
            if (data.length > 0) {
                console.log(data)
            }
        },
        error: function () {
            alert("There was error uploading files!");
        }
    });
}
函数SendImage(){ var fileUpload=$(“#文件”).get(0); var files=fileUpload.files; var data=new FormData(); 对于(var i=0;i0){ console.log(数据) } }, 错误:函数(){ 警报(“上传文件时出错!”); } }); } 控制器内部只需使用
var files=Request.Form.files获取文件

如果没有其他问题,希望它能解决你的问题

function SendImage() {
    var fileUpload = $("#files").get(0);
    var files = fileUpload.files;
    var data = new FormData();
    for (var i = 0; i < files.length; i++) {
        data.append(files[i].name, files[i]);
    }
    $.ajax({
        type: "POST",
        url: "/FileUpload/Upload/",
        contentType: false,
        processData: false,
        data: data,
        success: function (data) {
            if (data.length > 0) {
                console.log(data)
            }
        },
        error: function () {
            alert("There was error uploading files!");
        }
    });
}