【问题标题】:File upload using Web API使用 Web API 上传文件
【发布时间】:2015-01-27 19:38:57
【问题描述】:

我正在尝试使用,实现文件上传(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 控制器。

谢谢, 虚拟机

【问题讨论】:

  • 为什么要降级标记?请指教。谢谢

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


【解决方案1】:

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

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

更新

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

【讨论】:

  • 谢谢。我会尝试上面的插件并让你更新。
  • 我正在使用 jQuery File Upload 插件。
【解决方案2】:

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

【讨论】:

  • 这不是真的。您可以通过 Web API 将文件上传到服务器或存储系统(如 Azure Blob 存储)。例如,请查看this post
猜你喜欢
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-12-14
  • 2020-07-10
  • 2017-11-01
  • 2017-07-10
  • 1970-01-01
  • 2017-12-04
相关资源
最近更新 更多