使用Web API上传文件

时间:2015-01-27 19:38:58

标签: jquery asp.net web asp.net-web-api jquery-file-upload

我正在尝试使用

实现文件上传(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

2 个答案:

答案 0 :(得分:2)

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

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

<强>更新

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

答案 1 :(得分:-2)

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