【问题标题】:Erlang nitrogen file download二郎氮气文件下载
【发布时间】:2013-10-02 08:28:41
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: http erlang nitrogen


    【解决方案1】:

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

    没有很好的方法来处理这个问题。 有两种处理方法:

    1) 使用底层服务器的流式传输机制(如制作 一个特定于牛仔的调度表,用于定位一个牛仔处理程序模块,该模块 处理流),或偏航输出文件。

    2) 使用牛仔,有一些 hack 可以在 simple_bridge 如果您使用的是牛仔。如果你的模块的main() 函数 返回元组:{stream, StreamFun} 其中 StreamFun 是一个函数 与 arity 2 (fun(Socket, Transport) - 运输是一个牧场 运输)。真的,这只是一种捷径,可让您 使用 Transport:send(socket) 发送数据。我承认我没有做 以前是这样,但它应该稍微修改一下。

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

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2010-12-13
      • 2012-10-09
      • 2011-02-22
      • 1970-01-01
      • 2013-01-22
      • 2023-03-19
      • 2014-06-12
      • 2013-06-24
      相关资源
      最近更新 更多