【问题标题】:File not sending with FormData in Ajax request文件未在 Ajax 请求中使用 FormData 发送
【发布时间】:2021-10-22 06:23:38
【问题描述】:

我有一个 ajax 请求,它正在发送一个文件以及其他一些信息。除文件外的所有内容都是正确的值,并且文件始终为空。我不知道为什么。

这是我在表单中包含的输入:

<input type="file" id="file" runat="server"/>

点击按钮时,它会调用这个函数:

function ButtonClick() {
    var file = document.getElementById('file').files[0]; // correctly gets the file

    var formData = new FormData();
    formData.append('key1', 'val1');
    formData.append('key2', 'val2');
    formData.append('file', file, file.name);

    $.ajax({
        cache: false,
        data: formData,
        dataType: 'json',
        processData: false,
        contentType: false,
        success: function (data, textStatus, jqXHR) { closeWindow(); },
        timeout: 30000,
        type: 'POST',
        url: '<%= ResolveClientUrl("~/api/Example/ExampleUrl") %>'
    });
}

当我收到服务器端的请求时,我得到以下值:

var key1= HttpContext.Current.Request.Form["key1"]); // returns "val1"
var key2= HttpContext.Current.Request.Form["key2"]); // returns "val2"
var file= HttpContext.Current.Request.Form["file"]); // returns "null"

当我查看HttpContext.Current.Request.Form 时,“文件”根本不在请求中。

【问题讨论】:

    标签: javascript c# asp.net ajax form-data


    【解决方案1】:

    该文件应该可以通过

    访问
    HttpContext.Current.Request.Files["file"]
    

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 2022-10-17
      • 2021-08-14
      • 2011-10-21
      相关资源
      最近更新 更多