ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

2023-12-19

按照 ASP.NET 上的教程,实现了一个用于执行异步文件上传的 Web API 控制器方法,如下所示:

public Task<HttpResponseMessage> PostFormData()
{
    // Check if the request contains multipart/form-data.
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
    }

    string root = HttpContext.Current.Server.MapPath("~/App_Data");
    var provider = new MultipartFormDataStreamProvider(root);

    // Read the form data and return an async task.
    var task = Request.Content.ReadAsMultipartAsync(provider).
        ContinueWith<HttpResponseMessage>(t =>
        {
            if (t.IsFaulted || t.IsCanceled)
            {
                Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        });

    return task;
}

通过标准的多部分 HTML 表单上传文件效果非常好。但是,当另一个开发人员尝试通过 Flex 的 FileReference 类构造的多部分表单上传文件时,会引发错误:

MIME 多部分流意外结束。 MIME 多部分消息不完整。

我不知道问题出在 Web API 还是 Flex 上。我发现了一些没有影响的相关修复(使用 ASP.Net Web API 的多部分表单 POST https://stackoverflow.com/questions/12384544/multipart-form-post-using-asp-net-web-api),以及最近的这个(webapi 上传时出现“MIME 多部分流。MIME 多部分消息不完整”错误 https://stackoverflow.com/questions/10139052/mime-multipart-stream-mime-multipart-message-is-not-complete-error-on-webapi)。如果第二个链接成立,有谁知道它是否在通过 Nuget 提供的当前版本的 Web API 中?讨论是在 5 月份进行的,Nuget 的最新版本是在 8 月份,因此我认为此修复程序已经部署,并且不是我的问题的根本原因。


我在 MVC4 中遇到了同样的问题,但是 Will 是正确的,请在您的输入中添加一个名称......

<input type="file" id="fileInput" name="fileInput"/>

所有的魔法都恢复并发挥作用了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束 的相关文章

随机推荐

  • Android 媒体播放器停止后无法播放

    我有 5 首歌曲的音乐播放列表 我只希望只要我在应用程序中 播放和停止按钮就可以工作 当我想要的时候我可以停止音乐并开始另一个 现在这是如何工作的 音乐在 播放 按钮上播放 当我单击 停止 按钮时 它停止 但后来我想播放其他歌曲 或再次播放
  • 由于构建后步骤,未加载本机 dll 的符号 (pdb)

    我有一个用符号构建的本机发行版 dll 有一个构建后步骤会修改 dll 构建后步骤会进行一些压缩 并可能附加一些数据 pdb 文件仍然有效 但是 WinDbg 和 Visual Studio 2008 在构建后步骤之后都不会加载 dll 的
  • PHP 中的类发生了什么?

    如果我有这段代码 则会回显字符串 test 这是 PHP 5 3 中的内容 这是一些不应该依赖的疏忽 还是在 PHP 中实现多重继承的某种方式 class Test1 function getName return this gt name
  • 反应改变点击时列表项的类别

    我有一个像这样的反应元素 import React PropTypes Component from react class AlbumList extends Component constructor props super props
  • 为什么delete可以对const指针执行,而free却不能?

    我刚刚注意到指针传递给delete can be const合格而通过的人free不能 这对我来说确实是一个惊喜 在 C 中重载为operator delete应该有一个像这样的签名 void operator delete void p
  • 联合类型和额外属性

    当使用可以同时是联合类型情况的参数调用函数时 有没有办法让 TypeScript 编译器产生错误 例子 interface Name name string interface Email email string type NameOrE
  • Sails.js:如何使用水线连接多个模型?

    我有 3 个模型 大陆 国家和城市 我想加入这些模型以获得结果 大陆 js attributes continent Id type string primaryKey true continent Name type string des
  • 对象 Switch 语句的高性能 Objective C 替代方案

    我有一个函数 我想接受一个 NSString 和一个 int 参数 然后使用 switch 语句返回一个计算值 就像将 int 乘以某个常量一样 具体取决于提供的 NSString 内容 显然 switch 语句不适用于 Objective
  • 使用自定义视频编写器库编写音频的错误

    我正在尝试包装一小段方便的 C 代码 旨在使用 VFW 在 Windows 上生成视频 音频 C 库存在here http www farbrausch de 7Efg code aviwriter 描述说 使用 Windows 视频 因此
  • maven命令行如何为单个命令指向特定的settings.xml?

    是否可以指向特定的设置文件以覆盖 maven 用于单个命令的默认 settings xml 例子 mvn clean install Dparam gt pass specific settings file path as param t
  • Isabelle:向量中的最大值

    我想找到自然数向量中的最大值 然而 向量 即 vec 是与集合或列表不同的类型 我考虑了几个行不通的想法 比如调平或提升 vec 的类型或递归函数的定义 您建议采用什么解决方案来获得向量中的最大值 IMPORTS src HOL Algeb
  • 防止背景图像在更改时闪烁

    我正在使用按钮的背景图像并切换到不同的按钮 hover 当第一次鼠标悬停时发生切换时 背景颜色会短暂闪烁 我在这里将其设置为橙色 以便更明显 它与白色背景相同 或者如果我未设置背景颜色 但是 后续鼠标悬停时它不会闪烁 如何防止页面加载和第一
  • NSComparisonResult 和 NSComparator - 它们是什么?

    What is NSComparisonResult and NSComparator 我见过一种类型定义 类似这样 typedef NSComparisonResult NSComparator id obj1 id obj2 它和函数指
  • 如何在 Bootstrap 4 中的插入符下添加下拉箭头?

    我正在使用 Bootstrap 4 下拉选项 我想为左上角的下拉菜单添加一个向上箭头 在 Bootstrap 3 中 我们在按钮上有一个插入标记 因此我们可以将箭头添加到下拉菜单中 但在 Bootstrap 4 中 我们没有插入符号标记 使
  • Rails ORM 是否限制执行聚合的能力?

    我担心 Rails 是否可以处理金融应用程序所需的复杂聚合类型 特别是 ORM 是否可以有效地处理这些类型 在我正在考虑使用它的财务应用程序中 需要对以各种方式汇总的详细财务数据进行大量报告 如果没有 Rails ORM 的支持 我需要直接
  • 使 CSS 网格中的单行跨越所有列

    我怎样才能使 legend 跨越所有行 所以它会弄乱 fieldset 其样式为 3 列 CSS 网格 fieldset legend Personal Details legend fieldset fieldset legend
  • 编译器是否允许交错计算不同函数参数中的子表达式? [复制]

    这个问题在这里已经有答案了 我想知道以下情况 void f int a int b int a int x std cout lt lt func a lt lt std endl return 1 int b int x std cout
  • 如何在 Django 中测试空查询集?

    我正在 Django 中测试一个视图 该视图应该从对象中删除所有标签 为此 我使用这个断言 self assertEqual list Tag objects get for object Animal objects get pk 1 这
  • 根据 Airflow 中任务的输出字典动态生成多个任务

    我有一个任务 其中输出是一个字典 每个键中都有一个列表值 task task id gen dict def generate dict return output dict output look like this A aa bb cc
  • ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

    按照 ASP NET 上的教程 实现了一个用于执行异步文件上传的 Web API 控制器方法 如下所示 public Task