Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 使用余烬应用下载文件_Ember.js - Fatal编程技术网

Ember.js 使用余烬应用下载文件

Ember.js 使用余烬应用下载文件,ember.js,Ember.js,我有Ember应用程序(使用Ember CLI构建)。在后端,我有一个处理请求的Rails应用程序。假设我的API有以下路径: /model-返回模型列表 /model/1-返回模型 /model/1/下载-返回文件 如何强制Ember应用程序开始文件下载(使用/download路径),以及如何从Ember应用程序内部构建文件下载链接?为什么不在您的模型中返回下载的URL路径,以供“/model/1”使用。然后,您可以在把手模板中轻松创建链接,如下所示: 如果要点击端点并返回文件内容,我相信您

我有Ember应用程序(使用Ember CLI构建)。在后端,我有一个处理请求的Rails应用程序。假设我的API有以下路径:

/model
-返回模型列表

/model/1
-返回模型

/model/1/下载
-返回文件


如何强制Ember应用程序开始文件下载(使用
/download
路径),以及如何从Ember应用程序内部构建文件下载链接?

为什么不在您的模型中返回下载的URL路径,以供“/model/1”使用。然后,您可以在把手模板中轻松创建链接,如下所示:

  • 如果要点击端点并返回文件内容,我相信您需要设置内容处置头。详情如下:
  • 内容处置=附件;filename=some.file.name

  • 如果您直接链接到该文件,则可以使用HTML5
    download
    属性

    不要手动执行这些操作,保持简单易用


    如果要下载的文件来自Ember的后端,我认为它不能像这样工作。这将打开一个新窗口,显示带有与文件URI对应的路由的Ember应用程序,该路由可能不匹配。下载属性不太受支持:
    // models/invoice.js
    export default Model.extend({
      invoiceNumber: attr('number'),
    
      download: memberAction({ path: 'download', type: 'GET', ajaxOptions: { arraybuffer: true } })
    });
    
    // in a component
    invoiceModel
      .download()
      .then((pdfContent) => this.saveFileAs('invoice.pdf', pdfContent, 'application/pdf'));