我的应用程序必须生成应以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与要求。
我该如何解决这个问题?
答案 0 :(得分:0)
您可以使用标题Content-Disposition
在后端设置文件名,以便在前端使用标准<a>
标记。
在DRF中,它看起来像这样:
response['Content-Disposition'] = 'attachment; filename={}'.format(
file_name
)