使用 angularjs 从 PHP REST API 下载 docx 文件

Posted

技术标签:

【中文标题】使用 angularjs 从 PHP REST API 下载 docx 文件【英文标题】:download docx file from PHP REST API with angularjs 【发布时间】:2015-07-26 17:09:30 【问题描述】:

我有一个用 SLIM 框架编写的 php REST API,我有一个 api 调用,它创建一个 docx 文件并强制下载该文件。

$filename = 'invitation.docx'; $模板处理器->保存($文件名); header('内容描述:文件传输'); header('内容类型:应用程序/强制下载'); header('Content-Disposition: attachment; filename='.basename($filename)); header('内容传输编码:二进制'); header('内容长度:'.filesize($filename)); ob_clean(); ob_flush(); 读取文件($文件名); 出口(); 文件已创建,我可以通过服务器读取它。 但问题出在客户端文件已损坏
  Data.get('downloadInvitation/'+ id).then(function(results) 
        var file = new Blob([results],  type:    'application/vnd.openxmlformats-officedocument.wordprocessingml.document' );
       saveAs(file, 'invitation.docx');
       );

有人有想法吗?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。只需将 responseType: 'arraybuffer' 添加到您的 get 配置中即可。

【讨论】:

以上是关于使用 angularjs 从 PHP REST API 下载 docx 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含 CSRF 令牌的数据从 angularjs 控制器提交到 REST 控制器?

如何使用 AngularJS 和 Restangular 返回/编辑 REST 资源

如何使用 AngularJS 和 Restangular 返回/编辑 REST 资源

使用 ANGULARJS 从 Jersey rest api 调用中下载/保存文件。文件附加响应为“Content-Disposition”

从 angularjs 调用 REST 服务时本地主机上的 CORS 问题

在angularjs中使用来自rest服务的JSON对象