从 HttpResponseMessage 获取 Excel 文件

2024-01-26

我正在开发一个 ASP.NET Core 2.2 项目,我需要使用浏览器下载 Excel,但是当我执行请求时,我只得到一些 Json。

我的 Excel 在流中,并且流不为空!

这是我的代码:

HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
            var streamContent = new StreamContent(stream);

            streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
            streamContent.Headers.ContentDisposition.FileName = "Excel.xlsx";

            message.Content = streamContent;

            return message;

这是我得到的回应:

{"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]},{"key":"Content-Disposition","value":["attachment; filename=Excel.xlsx"]}]},"statusCode":200,"reasonPhrase":"OK","headers":[],"requestMessage":null,"isSuccessStatusCode":true}

那么,有人知道如何使用 HttpResponseMessage 发送 Excel 文件吗?

我可以使用 Filesteam 下载 excel 文件,但我不想使用这种方式,因为我无法收到任何 Http 错误消息(错误请求、内部等) 但是如果有人知道我如何发送这样的消息并返回文件流,我将很高兴阅读您的建议!

编辑:这是我返回 FileStreamResult 时的代码

                return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

您可以从 Stream 中读取字节数组,并返回 FileContentResult。

using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace DemoWebCore.Controllers
{
    [Route("api/[controller]")]
    public class FilesController : Controller
    {
        // GET api/files/sample.png
        [HttpGet("{fileName}")]
        public async Task<ActionResult> Get(string fileName)
        {
            var cd = new System.Net.Http.Headers.ContentDispositionHeaderValue("inline")
            {
                FileName = "Excel.xlsx"
            };
            Response.Headers.Add("Content-Disposition", cd.ToString());
            StreamContent stream = YOUR_STREAM_SOURCE
            byte[] content = await stream.ReadAsByteArrayAsync();
            return File(content, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 HttpResponseMessage 获取 Excel 文件 的相关文章

  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 输入新行并复制上面单元格中的公式

    我正在尝试创建一个 Excel 宏来执行以下操作 在文档末尾输入新行 复制上面单元格中的公式 到目前为止我有这个 Sub New Delta Go to last cell Range A4 Select Selection End xlD
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 使用输入作为显示日期的基础

    我需要一种方法来使用用户窗体上的输入来确定将在输出上显示的日期 这是我的代码 If StatusBox Value lt 23 59 And ShiftCode Value AP Then Cells emptyRow 8 Value Da
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • Java EE 6 发布日期 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Java
  • 用于操作 S-Record 和 Intel HEX 16 文件的库

    是否有可用的开源库 用 python 或 java 开发 用于操作 Motorola S Record 文件和 Intel HEX 16 文件 例如从一种格式转换为另一种格式 我正在寻找一个 纯 java或python库 而不仅仅是一组ja
  • RecyclerView 回收时出现问题

    我有一个我使用创建的项目列表RecyclerView 当用户单击其中之一时 我会更改所选项目的背景颜色 问题是 当我滚动浏览我的项目并回收它们时 某些项目会获得所选项目的背景颜色 这是错误的 在这里你可以看到我的Adapter s code
  • 用字典解析字符串的算法

    Given 一本充满单词的字典 in july den dentist best 使用一些 C API 来访问它 boolean findWord string word or string getNextWord void 迭代它 一些没
  • 解码 websocket 框架

    我正在尝试解码 websocket 帧 但在解码扩展有效负载时没有成功 到目前为止我所取得的成就是 char in data char buffer unsigned int i unsigned char mask 4 unsigned
  • 就地对 Perl 数组进行排序

    我有一个对数组的引用 称为 intervals 我想对这个数组中的值进行排序 数组中可能有大量值 所以我不想复制这些值 我目前的做法是这样的 sub by position a gt start lt gt b gt start a gt
  • React Hooks:如何在渲染之前等待数据被获取

    我在 useEffect 挂钩中有 fetch 方法 export const CardDetails gt const card getCardDetails useState const id useParams useEffect g
  • ResponseEntityExceptionHandler 针对 401 异常返回空响应正文

    我正在尝试使用 RestTemplate 实现对身份验证服务器的 Rest 调用 并记录响应 以防服务器返回异常 为了做到这一点 我使用 ResponseEntityExceptionHandler 来处理 HttpClientErrorE
  • R 中的掩码电话号码

    我的原始数据有很多个人信息 所以我在R中屏蔽它们 示例数据和我的原始代码如下 install packages stringr library string x c 010 1234 5678 John 010 8888 8888 Phon
  • Node JS:异步执行命令行并获取输出

    我如何运行命令行并尽快获取输出以将其显示在某处 例如 如果在 Linux 系统上运行 ping 命令 它永远不会停止 现在是否可以在命令仍在处理时获得响应 或者让我们采取apt get install命令 如果我想在安装运行时显示安装进度怎
  • If 语句内部和外部的 Return

    这可能是一个相当容易回答的问题 但它已经困扰我一段时间了 如果 if 语句内有一个 return 语句 在一个方法内 在 Java 语言中 但我在末尾添加另一个作为包罗万象并避免错误 则两个返回值都将在其他 if if 语句为真 一个例子
  • 我如何在Python中只向下舍入数字/浮点数?

    我将生成这个随机数 例如 12 75 或 1 999999999 或 2 65 我希望始终将此数字向下舍入为最接近的整数 因此 2 65 将四舍五入为 2 抱歉 我问了很多遍 但没有找到答案 谢谢 您可以选择我们int math trunc
  • org.bson.BSONObject 中的 java 类型

    我目前正在学习mongodb 的 BSON java 库 http github com mongodb mongo java driver 我正在尝试改变org bson BSONObject到 XML 中 以便将其转换为XSLT样式表
  • 在solr中搜索特殊字符

    我在 solr 中搜索特殊字符时遇到问题 我的文档有一个 标题 字段 有时它可能像 泰坦尼克号 1999 它有字符 当我尝试使用 在 solr 中搜索时 我收到 400 错误 我试图转义这个字符 所以我尝试了 和 之类的东西 经过这些更改
  • C# 中使用掩码进行位操作

    我需要一些有关 C 中位图操作的帮助 我想要一个UInt16 隔离任意数量的位 并使用另一个位设置它们UInt16 value Example 10101010 Original Value 00001100 Mask Isolates b
  • Android将图片旋转90度(相机拍摄)[重复]

    这个问题在这里已经有答案了 我正在通过代码在我的 Samsung Galaxy SII 设备中拍照 保存并在屏幕上显示它后 我看到它旋转了 90 度 我知道这是一些设备问题 并非所有设备上都会发生这种情况 我正在使用给定的相机意图拍照并将其
  • Apollo 客户端什么是主动查询?

    My Setup Typescript 反应应用程序 后端 GraphQL API 阿波罗客户端 使用 Apollo 客户端 Devtools 扩展进行检查 我的问题 什么是主动查询 Apollo 文档谈论了很多主动查询 但我很难得到一个实
  • 如果填充了另一个字段,则 MVC 3 字段为必填字段

    我有一个简单的问题 例如 我有两个字段映射在模型 ex 上 textbox 1 和 textbox 2 我想问是否存在一种方法 前强制装饰器 仅当我填充 textbox 1 时才强制执行 textbox 2 如果我不填写textbox 1
  • iPhone 在 CoreData 保存时崩溃

    这是一个不同的情况这个问题 https stackoverflow com questions 1230858 iphone core data crashing on save 因为提供的解决方案不起作用并且堆栈不同 当我使用 cored
  • 从 HttpResponseMessage 获取 Excel 文件

    我正在开发一个 ASP NET Core 2 2 项目 我需要使用浏览器下载 Excel 但是当我执行请求时 我只得到一些 Json 我的 Excel 在流中 并且流不为空 这是我的代码 HttpResponseMessage messag