我需要在我的氮气应用程序中提供文件下载功能。
原则上我需要像这样设置标题:
wf:header("Content-Disposition", "attachment; filename=\"" ++ Filename ++ "\""),
但现在我找不到在Nitrogen API中发送我的文件数据块的函数了。
我需要分批上传文件,因为它们可能非常大,除此之外,文件在本地存储上不可用,但二进制数据是从其他模块获得的。所以在实践中我需要自己处理向http流发送数据块。
任何想法或示例如何做到这一点,可以使用什么api函数?
答案 0 :(得分:1)
我能给你的最佳答案是几天前我在氮邮件列表上的answered:
没有一个很好的方法可以解决这个问题。 有两种方法可以解决这个问题:
1)使用底层服务器的流媒体机制(例如制作 一个牛仔特定的调度表,以牛仔处理程序模块为目标 处理流媒体),或雅司病outfile。
2)使用牛仔,有一点可以工作的黑客
如果你使用牛仔,simple_bridge。如果您的模块的main()
功能
返回元组:{stream, StreamFun}
,其中StreamFun是一个函数
与arity 2(fun(Socket, Transport)
- 运输是一个牧场
运输)。真的,这只是一种允许你的捷径
使用Transport:send(socket)发送数据。我承认我没有做过
这之前,但它应该有点修修补补。
将此作为simple_bridge和Nitrogen的实际选项添加 可能是值得的。