如何使用 AngularJS 并调用 MVC API 下载文件?

2023-11-23

我正在使用 AngularJS,并且有一个 MVC 4 API,它返回带有附件的 HttpResponseMessage。

var result = new MemoryStream(pdfStream, 0, pdfStream.Length) {
     Position = 0
};
var response = new HttpResponseMessage {
     StatusCode = HttpStatusCode.OK,
     Content = new StreamContent(result)
};
response.Content.Headers.ContentDisposition = 
           new ContentDispositionHeaderValue("attachment") {
                    FileName = "MyPdf.pdf"
           };
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;

我正在使用一个名为的 jQuery 插件文件下载...它可以精美地下载文件...但我还没有找到以“Angular”方式执行此操作的方法...任何帮助将不胜感激。

// _e


我有同样的问题。通过使用一个名为的 javascript 库解决了这个问题文件保存器

只需致电

saveAs(file, 'filename');

完整的http post请求:

$http.post('apiUrl', myObject, { responseType: 'arraybuffer' })
  .success(function(data) {
            var file = new Blob([data], { type: 'application/pdf' });
            saveAs(file, 'filename.pdf');
        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 AngularJS 并调用 MVC API 下载文件? 的相关文章

随机推荐

  • .NET 垃圾收集器遇到麻烦。阻塞 15-40 分钟

    一些事实 我们开发了 wcf 服务 充当客户端和数据库之间的层 它是自托管的并作为 Windows 服务运行 该服务保留了多个缓存 其中最大的缓存大约为 1 2GB 总内存使用量通常约为 5 8GB 连接是双工的 使用 tcp 协议 序列化
  • eval() 不在运行时分配变量

    I use eval 将列表分配给 var eval mylist 1 2 3 但是当我运行它时 我得到了一个语法错误 它出什么问题了 如果我不能在eval 如何在运行时分配 var Use exec对于声明 gt gt gt exec l
  • 应用程序配置错误 抱歉,myapp 尚未获准在应用程序中心显示。在 Android 应用程序中共享

    当我在 Facebook 上点击我的应用程序名称时 它重定向到 https www facebook com games app id 827708240586758 并显示 应用程序配置错误抱歉 我的应用程序尚未获准在应用程序中心显示 我
  • 如何在不使用故事板的情况下创建 UICollectionView?

    我在网上找到了一些不错的 UIcollectionview 教程 http www raywenderlich com 22324 beginning uicollectionview in ios 6 part 12 http ashfu
  • AppBarLayout 以编程方式更改偏移量

    如何以编程方式更改 AppBarLayout 的偏移量 当 Activity 首次加载时 我希望 AppBarLayout 部分展开 有一定的偏移量 然后用户可以进一步展开它或折叠它 当前的行为是当 Activity 首次加载时它完全展开
  • 交换 gnuplot 中的轴

    我想知道这个有一段时间了 它可能已经在gnuplot但我一直无法在网上找到信息 当您有数据文件时 可以交换轴并将 虚拟变量 例如 x 在 gnuplot 的帮助术语中 分配给垂直轴 plot data u 1 2 x goes to hor
  • 使用事务进行rails数据库迁移

    我刚刚学习 Rails 并开始了有关数据库迁移的部分 我构建了 2 个迁移 并且都成功迁移了 向下迁移 最新的迁移 即第一个运行的迁移 由于我的代码中的拼写错误而失败 我修复了拼写错误 但此后迁移仍然失败 我发现原因是向下迁移在更改中途中止
  • Laravel 5.6 中的 url() 与 Route()

    就我而言 Laravel 5 6 中的 url 和 route 有什么区别 下面给出了两个 URI a href Create post 1 a and a href Create post 2 a 我在 web php 中定义它们如下 R
  • 为什么需要 useRef 而不是可变变量?

    我读过了useEffect 完整指南 逆流而上反应过度 该示例表明 如果我们想获取最新的count 我们可以用useRef保存可变变量 并在异步函数中获取它 function Example const count setCount use
  • Android 在回收站视图中水平自动滚动

    我在列表中有两个值 并使用回收器视图在水平列表视图中显示它们 这里我需要无限地自动滚动水平列表 我尝试使用下面的代码但没有结果 Horizo ntalScrollView 添加新视图时自动滚动到结束 请在此处查看解决方案 https git
  • 您可以在 List 中的位置 0 处插入吗?

    我需要在集合的开头插入一个对象 我的收藏是列表类型 我怎样才能做到这一点 当然可以 例如一个通用的字符串列表 List
  • 如何让 Visual Studios 构建系统了解托管 dll 的非托管依赖关系?

    构建托管代码时 Visual Studio 正确 并递归地 将引用的托管项目的 dll 复制到正在构建的项目的输出文件夹中 但是 如果这些引用之一是依赖于非托管 DLL 的托管 DLL 则这些非托管 DLL 不会复制到输出文件夹 即使它们的
  • :after 伪元素的 CSS3 转换

    看看这个小提琴 http jsfiddle net sajYc 过渡为 after伪元素在 Firefox 中工作 但在基于 webkit 的浏览器中失败 知道这是否会在未来的版本中出现吗 有什么非 jquery 过度杀伤的解决方法吗 基本
  • 为什么 :before 在 safari 中看不到?

    我有一个在 Chrome 中运行良好的代码 menu ul list style position inside list style type none display block margin 0 auto padding 0 menu
  • 在单独的 .swift 文件中使用扩展名

    寻找在单独的文件中使用 Swift 扩展的方法或替代解决方案 仅当扩展被写入正在使用的同一文件中时 创建扩展才有效 这是一个有效的 ViewController swift 示例 import UIKit var TestHelper St
  • C++ 将向量转换为向量

    什么是一个好的干净的方法来转换std vector
  • 扁平化 TypeScript 类型或界面?

    作为一名 TypeScript 开发人员 我已经习惯了在使用时出现 重复标识符 问题 d ts files 最近 发生这种情况是因为我需要两种打字 d ts文件 Angular 2 和 Parse Angular 2 不分发它们的 d ts
  • WordPress:如何将 url GET 参数添加到我的主菜单项

    我正在尝试将 URL GET 参数添加到 Wordpress 中的主菜单项之一 但我不知道如何操作 因此 我的方法是检测菜单项上的单击事件 然后通过 AJAX 将参数传递到我的 php 页面 该页面将处理根据需要传递的值 我的主要问题是 看
  • 完整克隆是子模块添加分支的唯一方法吗?

    我想添加一个引用特定 非主 分支的子模块 以下只会抓取 master 分支 因为 depth 1 所以命令必然会失败 git submodule add b myBranch depth 1 email protected some lar
  • 如何使用 AngularJS 并调用 MVC API 下载文件?

    我正在使用 AngularJS 并且有一个 MVC 4 API 它返回带有附件的 HttpResponseMessage var result new MemoryStream pdfStream 0 pdfStream Length Po