0

终于知道如何实现这一目标了!

原来它就像启用 xsendfile 和设置头参数 Accept-Range 一样简单

在下面阅读我的答案

(顺便说一句,在下面的块引用中,我写了一个常见的陷阱新手 - 就像我一样 - 做了。我们倾向于认为它应该手动编程)

URL 必须类似于:mysite.com/get_file?file_point=100 -> 这将从字节 100 读取

  1. 从参数获取偏移量(在我们的示例中为 file_point 参数)
  2. 找出文件的大小(File.size)
  3. 从偏移到长度读取文件(相当于 PHP 中的 fseek)
  4. 使用 send_file 发送文件

在上述步骤中,我不知道如何在 Ruby 中执行第 3 步。

4

1 回答 1

1

我就是这样做的:

response.header["Accept-Ranges"] = "bytes"
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true

我让我们的服务员设置mod_xsendfile,我自己不知道如何设置。

教程在这里: http: //www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/

在此处阅读有关内容长度的信息:http: //www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

关于流式传输可在此处获得: http: //api.rubyonrails.org/classes/ActionController/Streaming.html

于 2010-05-21T06:14:07.820 回答