C# 文件下载已损坏

2023-12-24

我在 Web API 项目的实用程序中有一些 C#。代码的上传部分工作正常;我已验证到达服务器的文件与上传的文件是否匹配。但是,下载过程中发生了一些事情,导致客户端将文件视为已损坏,当我进行比较时,我可以看到出现了问题。

不幸的是,我不知道我做错了什么。该实用程序的相关部分如下:

public static HttpResponseMessage StreamResponse(this HttpRequestMessage request, Stream stream)
{
    if (stream.CanSeek) stream.Position = 0;// Reset stream if possible

    HttpResponseMessage response = request.CreateResponse(HttpStatusCode.OK);
    response.Content = new StreamContent(stream);
    if (stream is FileStream)
    {// If this is a FileStream, might as well figure out the content type
        string mimeType = MimeMapping.GetMimeMapping(((FileStream)stream).Name);
        response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(mimeType);
    }
    return response;
}

public static HttpResponseMessage DownloadAs(this HttpResponseMessage response, string fileName)
{
    response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
    response.Content.Headers.ContentDisposition.FileName = fileName;
    response.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(MimeMapping.GetMimeMapping(fileName));
    return response;// For chaining or whatnot
}

我在 API 控制器中的用法是return ResponseMessage(Request.StreamResponse(stream).DownloadAs("Filename.ext"));

我已经仔细检查了下载代码,这似乎与我发现的相符。我做错了什么或者我错过了什么?看起来编码或字符集有问题,但我不知道解决方案是什么。


终于解决了这个问题,感谢本次问答 https://stackoverflow.com/questions/33051467/corrupted-download-in-angularjs-app。我缺少responseType 选项/参数$http https://docs.angularjs.org/api/ng/service/%24http调用客户端代码。

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

C# 文件下载已损坏 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

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

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

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

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 使用 UI 的 Airflow s3 连接

    我一直在尝试使用 Airflow 来安排 DAG 其中一个 DAG 包含一项从 s3 存储桶加载数据的任务 出于上述目的 我需要设置 s3 连接 但气流提供的 UI 并不那么直观 http pythonhosted org airflow
  • 哪种算法是查找素数最快的算法?

    使用 C 找出素数最快的算法是什么 我已经使用了 sieve 算法 但我仍然希望它更快 非常快的实施阿特金筛 http en wikipedia org wiki Sieve of Atkin是丹 伯恩斯坦的primegen http cr
  • 在 Ruby on Rails 的模型中使用“current_user”

    我正在使用 Devise 它在助手中提供了 current user 方法 以便我可以在视图和控制器中使用 但是现在我想访问模型中的 current user 方法 这是我现在控制器中的内容 def create set email add
  • 为什么 `Array(0,1,2) == Array(0,1,2)` 没有返回预期结果?

    据我了解 Scala 的 定义两个对象的自然平等 我期望Array 0 1 2 Array 0 1 2 比较自然平等 例如 检查与另一个数组的相应元素比较时数组的所有元素是否返回 true 人们告诉我 Scala 的Array只是一个Jav
  • 为什么 C# 中的类型推断不适用于动态对象和泛型方法?

    我正在开发一个项目 该项目使用 C 泛型与动态关键字相结合来实现一个简单的 prototxt Caffe 文件解析器 该解析器基于 Google protocol buffer 项目的 proto2 语法 解析器使用非常简单的语法来读取 p
  • 将域模型映射到视图模型

    我从一个非常相似的点开始 领域实体 DTO 和视图模型 https stackoverflow com questions 5330172 domain entities dto and view models 建议使用 DTO 在域模型和
  • 如何使用相对路径访问不属于任何项目/程序集的图像[重复]

    这个问题已经存在了 我正在为 帝国时代 2 DE 制作一个模组 我的目标是从新 UI 的目录访问旧的纹理文件 文件结构如下 C Program Files x86 Steam steamapps common AoE2DE 是包含exe的游
  • 重构 JSON 数据

    目前我有一个 json 文件 其中存储了多个数据 如下所示 name Adelphi University supp Yes E WS ed u00a0 online 40 ea 12 1 mid No rd Rolling recs Ye
  • Doctrine 2.0 引导程序?

    好的 我已经在文件夹层次结构中找到了 Doctrine php 文件 如下所示 includes Setup php Doctrine Common DBAL ORM Symfony Doctrine php 我的 setup php 有以
  • 在课堂上使用碰撞列表

    我创建了一个类来创建矩形并将它们放入列表中 我不想让它们碰撞 所以我使用 collidelist 但它不起作用 矩形仍在碰撞 我还希望矩形在击中特定点时向下移动并更改 x 位置 我可以做到这一点 但我不确定它是否会阻止碰撞列表工作 请查看下
  • 我如何知道 lambda 表达式何时为空

    我需要以编程方式检查 lambda 表达式中的嵌套属性 函数结果是否为 null 问题在于 null 可能位于任何嵌套子属性中 例子 功能是 public static bool HasNull
  • Oracle DB 表中的第二高值 [重复]

    这个问题在这里已经有答案了 根据表格 USERS user name email balance 如何创建一个查询 返回最多的第二高用户余额高效的 way 我成功地通过查询获取了此记录 但不是通过有效的方式 SELECT FROM SELE
  • 每月重新加载 servlet 一次

    如何每月重新加载一次 servlet 我们得到了一些每月会改变一次的数据 这些数据是给servlet的 但是我们不需要将这些数据保存到DB中 而是希望将其做成一个每月更换一次的配置文件 怎么办我做这个 我知道servlet的生命周期策略是由
  • 如何使用 SQLAlchemy + postgreSQL 减少连接数?

    我正在开发heroku使用他们的Postgres开发计划的附加组件 其连接限制为20 我是新来的python这可能是微不足道的 但我发现很难在不导致OperationalError OperationalError FATAL too ma
  • Chart.js 无法创建图表:无法从给定项目获取上下文

    我从未进入过节点 所以我很确定我在这里做了一些严重错误的事情 因为我根本无法通过谷歌搜索找到任何信息 我有一个 django 网站 我想要一个 JS 图表库 我选择了 Chart js 我安装并喜欢这些文档 但之后我不确定该怎么做 所以我尝
  • 监视同步 XMLHttpRequest 调用的进度

    在客户端 我有一个文件放置区 HTML5 文件 API 用户可以在其中放置应上传到服务器的多个文件 对于每个文件 都会创建一个新的 XMLHttpRequest 对象 并将文件异步发送到服务器 我正在通过以下方式监控进度progressxh
  • 将值传递给 Javascript 时出现引号问题

    我正在使用像 myPage td a href Edit a td where row name 其值中有引号 它坏了 我如何从 php 端和 js 端解决这个问题 row name 是来自数据库的值 它的价值就像pradeep s and
  • 如何使用 Leaflet API 更改地图的位置中心?

    我的地图 Mapbox 占据了网站的整个背景 因此中心位于网站的中间 但用户的地图焦点位于右侧 因为我的内容与左侧的地图重叠 当传单抓取位置时 它是从地图的中心开始的 但是如果我可以将其设置为从网站右三分之一的中心抓取位置 这样用户就不会居
  • 使用 CUDA __shfl_down 函数查找数组及其索引中的最小值

    我正在编写一个函数 它将找到最小值以及使用 CUDA 找到一维数组的值的索引 我首先修改用于查找一维数组中的值之和的简化代码 该代码对于求和函数工作得很好 但我无法让它工作来找到最小值 我在消息中附上了代码 如果有cuda高手请指出我犯的错
  • C# 文件下载已损坏

    我在 Web API 项目的实用程序中有一些 C 代码的上传部分工作正常 我已验证到达服务器的文件与上传的文件是否匹配 但是 下载过程中发生了一些事情 导致客户端将文件视为已损坏 当我进行比较时 我可以看到出现了问题 不幸的是 我不知道我做