二郎氮文件下载

时间:2013-09-26 11:33:01

标签: http erlang nitrogen

我需要在我的氮气应用程序中提供文件下载功能。

原则上我需要像这样设置标题:

wf:header("Content-Disposition", "attachment; filename=\"" ++ Filename ++ "\""),

但现在我找不到在Nitrogen API中发送我的文件数据块的函数了。

我需要分批上传文件,因为它们可能非常大,除此之外,文件在本地存储上不可用,但二进制数据是从其他模块获得的。所以在实践中我需要自己处理向http流发送数据块。

任何想法或示例如何做到这一点,可以使用什么api函数?

1 个答案:

答案 0 :(得分:1)

我能给你的最佳答案是几天前我在氮邮件列表上的answered

没有一个很好的方法可以解决这个问题。 有两种方法可以解决这个问题:

1)使用底层服务器的流媒体机制(例如制作 一个牛仔特定的调度表,以牛仔处理程序模块为目标 处理流媒体),或雅司病outfile。

2)使用牛仔,有一点可以工作的黑客 如果你使用牛仔,simple_bridge。如果您的模块的main()功能 返回元组:{stream, StreamFun},其中StreamFun是一个函数 与arity 2(fun(Socket, Transport) - 运输是一个牧场 运输)。真的,这只是一种允许你的捷径 使用Transport:send(socket)发送数据。我承认我没有做过 这之前,但它应该有点修修补补。

将此作为simple_bridge和Nitrogen的实际选项添加 可能是值得的。