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