C# 将 IFormFile 读入 byte[]

2023-11-25

我正在尝试阅读IFormFile从这样的 HTTP POST 请求收到:

 public async Task<ActionResult> UploadDocument([FromForm]DataWrapper data)
    {
        IFormFile file = data.File;
        string fileName = file.FileName;
        long length = file.Length;
        if (length < 0)
            return BadRequest();
        using FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate);
        byte[] bytes = new byte[length];
        fileStream.Read(bytes, 0, (int)file.Length);

        ...

    }

但执行此行后出现问题:

fileStream.Read(bytes, 0, (int)file.Length);

的所有元素bytes为零。

此外,在我的 Visual Studio 项目中创建了同名的文件,我不希望发生这种情况。


你无法打开一个IFormFile与磁盘上的文件相同。你必须使用IFormFile.OpenReadStream()反而。文档在这里

public async Task<ActionResult> UploadDocument([FromForm]DataWrapper data)
{
    IFormFile file = data.File;

    long length = file.Length;
    if (length < 0)
        return BadRequest();

    using var fileStream = file.OpenReadStream();
    byte[] bytes = new byte[length];
    fileStream.Read(bytes, 0, (int)file.Length);

}

原因是fileStream.Read(bytes, 0, (int)file.Length);看似空是,因为它是。这IFormFile.Filename是请求给出的文件名,磁盘上不存在。

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

C# 将 IFormFile 读入 byte[] 的相关文章

  • X11 模式对话框

    如何使用 Xlib 在 X11 中创建模式对话框 模态对话框是一个位于应用程序其他窗口之上的窗口 就像瞬态窗口一样 并且拒绝将焦点给予应用程序的其他窗口 在 Windows 中 当试图从模态窗口夺取焦点时 模态也会通过闪 烁模态窗口的标题栏
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • 警告 C4800:“int”:强制值为 bool“true”或“false”(性能警告)

    我的代码中有这个问题 bool CBase isNumber return id MID NUMBER bool CBase isVar return id MID VARIABLE bool CBase isSymbol return i
  • 为什么子函数不销毁GtkWindow?

    这是我的代码 void window first void enter window2 GtkWidget w gpointer data void quit GtkWidget w gpointer data void quit int
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • 如何自定义 Google 测试失败消息?

    我编写了一个如下所示的 Google 测试 它将一些计算值与 CSV 文件中预期存储的值进行比较 class SampleTest public testing Test public void setupFile const std st
  • 如何将STL容器数据转储到gdb中?

    我无法在 gdb 中转储 STL 无序映射容器值 变量类型是 std unordered map var 我的 gdb 版本 7 7 1 GDB配置 configure host x86 64 linux gnu target x86 64
  • 您对“大规模 C++ 软件设计”的看法 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 正在阅读亚马逊评论 https rads stackoverflow com amzn click com 0201633620 and ACC
  • 更改 Xamarin.Forms 应用中顶部栏和底部栏(ControlsBar、StatusBar)的颜色

    无论如何 即使后面需要特定于平台的代码 也可以更改顶部栏 蓝色的 和底部栏 黑色的 的颜色吗 我希望添加对浅色和深色模式的支持 因此我希望能够在运行时更改它 有可能的 Android Using Window SetStatusBarCol
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • 当需要不同数量和类型的参数时如何创建操作委托列表

    我们有一组大约两打的类 它们继承自具有抽象 Validate 方法的基类 当然 每个类都有不同的验证需求 但它们之间的不同组合需要规则 因此 正如您可以想象的那样 这导致了大量代码重复 例如 A 类需要规则 1 3 6 和 9B 类需要规则
  • 如何在 C# 中更改公共 IP 地址

    我正在创建一个 C winform 应用程序 我想在其中更改公共 IP 地址 而不是像 Hotspot Shield ZenMate OpenVPN 等那样更改 IPv4 地址 我已经检查了以下链接 但没有找到足够的帮助 所以我发布了这个问
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • 当我的进程被终止时到底会发生什么?

    我有一个包含本机代码和托管代码的混合进程 在 Windows Server 2003 上运行 当我从进程资源管理器中终止进程时 它会进入 100 cpu 的状态 并在消失之前保持这种状态一段时间 有时甚至 10 分钟 在此期间我无法 杀死
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma

随机推荐

  • 将对象添加到列表时出现空引用异常[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 当我尝试将对象添加到对象内的列表时 即使该对象的所有属
  • 为什么元组不会收到未使用的变量警告?

    在下面的示例中 使用编译 Wall 一些未使用的变量不会被警告 include
  • 自定义 Elastalert 插件收到的警报中的信息

    我已经使用我的 elasticsearch 主机配置了 elastalert 实例 我还创建了一个示例规则 该规则将在日志中匹配该模式时检查日志级别和警报 一切工作正常 我在我的松弛通道上正确收到警报 唯一关心的是我收到的警报中的信息 数据
  • Java中的大类分解

    我刚刚开始学习 Java 很好奇 Java 中是否有良好的对象分解实践 我来描述一个问题 在大型软件项目中 它总是像 core 或 ui 这样的大类 它们往往有很多方法 并且旨在作为较小类之间的中介 例如 如果用户单击某个窗口上的按钮 则该
  • 使用 C# 为每三位数字添加逗号

    我想使用 C 每 3 位数字向十进制数字添加逗号 我写了这段代码 double a 0 a 1 5 Interaction MsgBox string Format 0 0 a 但它返回2 我哪里错了 请描述我该如何修复它 double a
  • WPF 用户控件不随主窗口调整大小

    我正在尝试制作一个 WPF 用户控件 其中包括两个组框和两个ListView每个组框中都有 s 以下是用户控件的 XAML 代码
  • Swift 错误:“序列”要求类型“T”和“ArraySlice”等效

    我正在尝试更新数学库以与 Swift 3 兼容 但遇到错误 Sequence requires the types T and ArraySlice
  • 如何在bash中对多行进行排序?

    我正在尝试对名称列表进行排序 后跟另一个字符串 例如 John Doe AVAIL Sara Doe CALL Jim Doe AVAIL 我试图按名称对它们进行排序 但似乎无法通过排序来弄清楚 有人可以提供一些指导吗 我的最终输出如下所示
  • 将文本添加到图像文件

    我需要向图像文件添加文本 我需要读取一个图像文件 jpg png gif 并且需要向其中添加一行文本 在 GDI 中 您可以使用 Image 类读取文件 然后使用 Graphics 类向其中添加文本 就像是 Image image Imag
  • PHP中的动态类方法调用

    有没有办法动态调用 PHP 同一类中的方法 我的语法不正确 但我想做类似的事情 this gt methodName arg1 arg2 arg3 有不止一种方法可以做到这一点 this gt methodName arg1 arg2 ar
  • 检测 ios 应用程序是否在 iPhone、iPhone Retina 显示屏或 iPad 上运行的代码是什么?

    检测 ios 应用程序是否在 iPhone iPhone Retina 显示屏或 iPad 上运行的代码是什么 背景 对于我的 iPhone 应用程序 我在 XCode 目标 摘要页面中定义了特定图像 iPhone 启动图像 iPhone
  • 使用键盘热键启动 powershell 脚本

    我想使用键盘上的热键 例如 CTRL SHIFT F 执行 powershell 脚本 ps1 文件 我设法创建脚本的快捷方式 右键单击资源管理器 gt 新建 gt 快捷方式 快捷方式的目标是 SystemRoot system32 Win
  • 如何使用 MongoDB 聚合获取每个组的第一个,包括空值?

    在我的 MongoDB 中people我需要过滤具有相同 别名 属性值的人 保留其中的第一个 并保留所有具有空 别名 的人 一些样本人员数据 id 1 flag true name Alice alias null id 2 flag tr
  • 如何从 nuxt 插件发出事件?

    我正在创建一个插件 它将发出由套接字触发的基本 nuxt 事件 然后将接收 nuxt 事件并打开一个小吃店 当在组件内部时 可以通过使用轻松发送和接收事件 nuxt this nuxt on open snackbar this handl
  • Android:在片段之间传递对象

    在开始之前 我先浏览了以下问题 在片段之间传递数据 屏幕重叠 如何在Fragment之间传递值 以及 Android 文档 http developer android com training basics fragments commu
  • JUnit Eclipse 插件源代码?

    我正在考虑为 FlexUnit 编写一个 Eclipse 插件 并且想知道在哪里可以获取 JUnit Eclipse 插件的源代码 我检查了 sourceforge 上的 JUnit 源代码 但找不到任何看起来像插件代码的代码 知道这个代码
  • 谁能解释一下 gitcherry-pick 的作用吗?

    正如我在这里担心的那样 我在另一个本地分支中有旧的提交 包含 abc cpp def cpp 现在几个月后我想使用这些更改 但在我当前的分支 abc cpp 已升级 那么 如果我挑选的话 它是否会将旧 abc cpp 的更改集成到新 abc
  • 缺少 Hive 执行 Jar:/usr/local/hadoop/hive/lib/hive-exec-*.jar

    我在 Ubuntu 机器上设置的单节点集群上运行 Hadoop 1 0 4 我执行了以下步骤来下载并安装配置单元版本 gt svn co http svn apache org repos asf hive trunk hive gt cd
  • 解析 EMV 事务中 GET PROCESSING OPTIONS 命令的 PDOL

    我正在尝试构建一个格式正确的 GET PROCESSING OPTIONS 命令以发送到非接触式 EMV 卡 这个帖子非常有帮助 但我只需要了解更多细节 解析 PDOL 时 是否可以安全地假设每个标签的长度为 2 个字节 后跟预期返回的数据
  • C# 将 IFormFile 读入 byte[]

    我正在尝试阅读IFormFile从这样的 HTTP POST 请求收到 public async Task