使用 Web 上传文件 API

File upload using Web API

我正在尝试使用

实现文件上传(excel 个文件)
Visual Studio 2012,
ASP.NET Web Forms,
jquery,
Web API
Browser: IE 8

我尝试按照在线示例进行操作,但他们使用的是 FormData,它对我不起作用。

$('#ImportFileBtn').on('click', function () {

        var fileName = $('#ImportFileSelection').val();

        var data = "<form method='post' enctype='multipart/form-data'><body><input type='file' id='facilityFile' value='"+fileName +"' /></body></form>"

        $.ajax({
            type: "POST",
            url: "api/Import/ProcessImport",
            contentType: false,
            processData: false,
            data: data,
            success: function (messages) {
                alert('ok');
            },
            error: function () {
                alert("Error while invoking the Web API");
            }
        });
    });

请建议我如何使用上述工具和技术将 excel 文件上传到 Web API 控制器。

谢谢, Vim

Web API 用于允许其他应用程序使用其中的数据。你不能在那里上传文件。

问题是 IE8/9 不了解 FormData。有几个 jQuery 插件可以用来解决这个问题。以下是您可以使用的一些库(不是完整列表):

这不是一个完美的选择,但插件会让一些事情变得更容易。其中一些需要大量额外的代码。如果你只是需要这个功能,选择一个集成到 jQuery 的 ajax 方法中的(前段时间在项目中这样做过,但不记得我使用的库的名称)。

更新

仅作记录:我使用的库称为 jQuery iFrame-Transport,因为我必须支持非常旧版本的 IE。