Tag: sendfile

如何通过send_file设置内容长度

我不知道如何通过send_file设置内容长度。 我检查了api,没有内容长度的参数。

如何使用send_file下载文件?

有人可以告诉我如何使用send_file下载文件? 我在app/assets/images有一个文件image.jpg 。 我在我的控制器中试过这个: def download send_file (“#{Rails.root}/public/images/image.jpg”) end def download send_file (“#{Rails.root}/assets/images/image.jpg”) end def download send_file (“#{Rails.root}/images/image.jpg”) end def download send_file (“/public/images/image.jpg”) end def download send_file (“/assets/public/images/image.jpg”) end def download send_file (“/assets/images/image.jpg”) end 对于每条路径,它说: ActionController::MissingFile in HomeController#download Cannot read file ‘some_path’ 这可能是个问题? 谢谢!

Rails 4,资产管道导致用户可下载文件被下载两次

我的app目录中有一个名为“uploads”的文件夹,用户可以在其中上传文件和下载文件。 我不希望uploads文件夹在公共目录中,因为我想控制下载授权。 在我的控制器中,我有: send_file Rails.root.join(‘app’, ‘uploads’, filename), :type => ‘application/zip’, :disposition => ‘inline’, :x_sendfile=>true 这实际上工作正常。 问题是,当我在生产服务器上,当我运行rake资产:预编译,并有一个资产目录时,该文件下载两次。 第一次下载文件时,浏览器就像没有进行任何操作一样(没有加载旋转),但我看到数据正在谷歌Chrome开发人员网络选项卡中传输。 然后在下载文件后,会出现提示,询问用户是否要下载文件。 删除公共目录中的assets文件夹可以解决此问题,但我想使用资产管道。 我还尝试将require_tree中的资产管道需求更改为require_directory。 有谁知道如何让send_file与资产管道一起正常工作? 谢谢。

send_file只发送一个空文件

我正在寻找一种下载xml文件的方法。 我用: file_path = ‘folder/’ + xml_name + ‘.xml’ send_file file_path, :type => “text/xml” 但这总是下载一个空文件。 文件本身有16 KB的数据…… 这是为什么? Maechi

rails media file stream通过send_data或send_file方法接受字节范围请求

我有以下问题。 声音在公共文件夹中隐藏,因为只有某些用户应该有权访问声音文件。 所以我做了一个特定的方法,它就像一个声音url,但首先计算,是否允许当前用户访问该文件。 该文件由send_data方法发送。 问题是,如果它的工作原理我工作得很慢……我用来播放声音的jplayer插件的开发者告诉我,我应该能够接受字节范围请求以使其正常工作… 如何通过send_data或send_file发送文件在rails控制器中执行此操作? 谢谢,马库斯

Ruby on Rails send_file在刷新页面之前不起作用?

我正在研究Rails服务器,我可以从中下载本地存储的电影和动漫等。 这有点工作,但当我点击下载链接时,我必须刷新页面,以便下载实际开始。 这是处理下载的控制器: class DownloadController < ApplicationController def index @title = params[:title] @name = params[:name] @path = '/media/sf_Anime,_VN,_LN/Watching, not watched yet/'+@title+'/'+@name send_file( @path ) end end 这是链接到该控制器的链接: 编辑:我今天做了一些测试,并注意到如果我尝试发送较小的文件(文本或图像),下载链接会立即生效。 我还注意到下载链接实际上适用于电影,但下载开始需要20-30秒。 你知道导致这种延迟的原因吗?