如何允许用户从REST API保存报告?

时间:2016-04-27 11:23:25

标签: javascript report django-rest-framework

我的应用程序必须生成应以XLS格式下载的报告。我使用Django Rest Framework构建了一个REST API,并且有一个用于生成报告的端点。它接受带有JSON主体的POST请求(报告参数,如NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonstr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; from等,但也有一些用JSON对象表示的数据)并返回JSON结果。我成功地使用它从Javascript,将报告呈现为HTML表格,它工作得很好。

我的问题是我需要允许用户将报告保存为具有良好文件名的to文件(如.xls。我尝试了JS数据网址方法,但据我了解,如果您使用该选项,则无法设置文件名(除了在myawesomereport.04.12-10.12.xls标记上设置download属性,但其支持有限,因此无法前往我想也许我应该打开一个新的窗口,我的API端点的URL已经适当地形成,所以它输出一个XLS文件,但问题是我不明白是否有办法发送JSON与要求。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用标题Content-Disposition在后​​端设置文件名,以便在前端使用标准<a>标记。

在DRF中,它看起来像这样:

response['Content-Disposition'] = 'attachment; filename={}'.format(
    file_name
)