我有Ember App(使用Ember-CLI构建)。在后端我有Rails应用程序来处理请求。可以说我的API有以下路线:
/model
- 返回模型列表
/model/1
- 返回模型
/model/1/download
- 返回文件
如何强制Ember应用程序启动文件下载(使用/download
路径)?如何从Ember应用程序中构建文件下载链接?
答案 0 :(得分:3)
为什么不在模型中为" / model / 1"返回下载的URL路径。然后,您可以轻松地在手柄模板中创建链接,如下所示:
<a href="{{model.download}}" target="_blank">Download File</a>
答案 1 :(得分:3)
Content-disposition=attachment; filename=some.file.name
download
属性; <a href="{{model.download}}" download>Download File</a>
答案 2 :(得分:1)
不要手动执行任何操作,保持简单并使用ember-cli-file-saver!
// 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'));