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[] 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

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

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

    在下面的示例中 使用编译 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