当前位置: 首页 > 知识库问答 >
问题:

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

龚鸿雪
2023-03-14

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

    $filename = 'invitation.docx';
    $templateProcessor->save($filename);
    header('Content-Description: File Transfer');
    header('Content-type: application/force-download');
    header('Content-Disposition: attachment; filename='.basename($filename));
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: '.filesize($filename));
    ob_clean();
    ob_flush();
    readfile($filename);
    exit(); 
  Data.get('downloadInvitation/'+ id).then(function(results) {
        var file = new Blob([results], { type:    'application/vnd.openxmlformats-officedocument.wordprocessingml.document' });
       saveAs(file, 'invitation.docx');
       });

有人有主意吗?

共有1个答案

公孙阳羽
2023-03-14

我也有同样的问题。只需在get配置中添加responseType:'arraybuffer'

 类似资料:
  • 问题内容: 我需要提供下载文件的链接,任何用户都必须隐藏该链接并且可以访问该链接,这是我的代码,没有任何错误,但是我什至无法打开下载对话框: 模板 脚本文件 问题答案: 首先,您不能“隐藏/不公开”基于Web的技术(HTML / CSS / JavaScript)应用程序中的链接。下载是由客户端处理的,因此Download / Link-URL必须是公共的。您可以尝试使用后端执行的编程语言(例如“

  • 问题内容: 在我的Angular JS项目中,我有一个锚标记,单击该锚标记会对返回文件的WebAPI方法发出HTTP 请求。 现在,我希望在请求成功后将文件下载给用户。我怎么做? 锚标记: AngularJS: 我的WebAPI方法: 问题答案: 使用ajax对下载二进制文件的支持不是很好,它仍在作为工作草案进行开发。 简单的下载方法: 您可以使用以下代码简单地让浏览器下载所请求的文件,并且所有浏

  • 问题内容: 我有以下代码将页面附件带给用户: 问题是所有受支持的文件都可以正常工作(jpg,gif,png,pdf,doc等),但是.docx文件在下载时已损坏,需要通过Office进行修复才能打开。 起初我不知道问题是否出在解压缩包含.docx的zip文件,所以我没有保存输出文件,而是先保存了文件,然后成功打开了文件,所以我知道问题所在应该在回应写作中。 你知道会发生什么吗? 问题答案: 我也遇

  • 我正在使用JSCH从SFTP服务器下载文件。我使用单会话,多通道下载文件从不同文件夹位于SFTP。对于这个下载过程,我有一组排定的作业。每项工作将: 每次打开一个新通道()。通道名称:SFTP 使用方法获取要下载的文件总数的大小 如果size(Vector)大于零,则使用下载所有文件 最后关闭打开的通道。 在上面的过程中,大多数时候我得到的文件,找不到或没有这样的文件异常,并没有下载一些文件。 谁

  • 我有一个wordpress页面,在JS中有一些自定义功能,人们可以用pdf格式保存。是否有一种方法可以让人们也下载docx(MS Word)中的页面?我试着寻找解决办法,但找不到太多。 我想有一个按钮‘下载为docx',生成一个类似的pdf格式的外观版本。

  • 问题内容: 我在隐藏的文本区域中有一些文本。单击按钮后,我希望提供文本作为文件下载。是否可以使用AngularJS或Javascript? 问题答案: 您可以使用进行类似的操作。 在您的控制器中: 为了启用URL: 请注意 每次调用createObjectURL()时,都会创建一个新的对象URL,即使您已经为同一对象创建了一个URL。当不再需要它们时,必须通过调用URL.revokeObjectU