问题标签 [sendfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2657 浏览

ruby-on-rails - 发送文件问题

我正在使用 send_file 发送一些我生成的 CSV 数据。

但是我通过以下方式下载了这个send_file(它应该下载带有“Hello World”字符串的文件)

如果我通过浏览器打开它:

http://mydomain.com/test.csv

Hello World它以文本正确打开。

同样在开发中,它工作正常。仅在生产中且仅使用此文件。

编辑

虽然我不知道这种行为的原因,但我切换到send_data对我来说效果很好。

0 投票
3 回答
10947 浏览

ruby-on-rails-3 - Rails 3 - 如何发送文件以响应 Rails 中的远程表单?

我有这张优惠券表格

在验证控制器操作的代码后,我得到了如下确认:

现在我想用send_file指令向浏览器发送一个文件,但似乎什么也没发生

在日志中我可以看到

我想知道是否有类似的东西

 

我的控制器的动作看起来像

0 投票
3 回答
10784 浏览

nginx - Nginx 错误日志中的消息“X-Accel-Mapping header missing”

我正在使用 Nginx 1.0.0 和 Passenger 3.0.7 在 Ubuntu 8.04 上运行 Rails 3 站点。

在我的 Nginx error.log 中,我开始看到X-Accel-Mapping header missing很多消息。谷歌搜索将我带到Nginx docsRack::Sendfile的文档和文档。

现在,可以通过多个域访问我的应用程序,并且我send_file在我的应用程序中使用它来提供一些特定于请求它们的域的文件,例如,如果你来domain1.com/favicon.ico我在public/websites/domain1/favicon.ico. 这很好用,我认为我不需要/不想让 Nginx 参与并创建一些私有区域来存储这些文件,正如Rack::Sendfile文档中的示例所建议的那样。

我怎样才能摆脱错误信息?

0 投票
4 回答
7949 浏览

ruby-on-rails - rails 媒体文件流通过 send_data 或 send_file 方法接受字节范围请求

我有以下问题。声音从公共文件夹中隐藏,因为只有某些用户应该有权访问声音文件。所以我做了一个方法,它的作用就像一个声音的url,但首先计算当前用户是否被允许访问这个文件。

该文件由 send_data 方法发送。问题只是,即使它可以正常工作,我的工作也会很慢......我用来播放声音的 jplayer 插件的开发人员告诉我,我应该能够接受字节范围请求以使其正常工作...

如何通过发送带有 send_data 或 send_file 的文件在 Rails 控制器中执行此操作?

谢谢,马库斯

0 投票
1 回答
241 浏览

c# - 在 C# 中发送文件

我可以在 C# 中同时将一个端口上的文件发送到多台计算机吗?就像我有代码要通过System.Net.Sockets端口发送1234,我想将文件发送到 5 台计算机。我可以同时做吗?

0 投票
1 回答
321 浏览

linux - 如何将服务器套接字的输出“管道”或“链接”到另一个类似于 sendfile 的服务器套接字的输入?

在 Linux 中,使用 sendfile 可以直接将文件传输到套接字。

但是假设我们有两个服务器套接字,我们希望第一个的输出到第二个。

怎么做?代替

0 投票
2 回答
1996 浏览

php - 将 xml 文件从 php 发送到 android 应用程序

我正在尝试将 xml 文件作为 httpresponse 发送到来自 android 应用程序的帖子。
我了解如何从此处的 php 页面发送数据。
是否可以发送 xml 文件作为响应?
还是我必须将 xml 文件的内容作为字符串发送并在应用程序中解析它?
如果可能,如何在我的应用程序中读取文件,以便解析它以获取信息?
谢谢你。

0 投票
1 回答
1278 浏览

ruby-on-rails-3 - Rails send_file 在通过 Web 服务调用时不发送数据

我处于一种奇怪的情况,即 send_file 无法正确发送文件。这是情况:

Rail 版本:3.0.10 和 3.1.0 [两个不同的测试分支] Ruby:1.9.2 on RVM Webserver:Apache with Passenger

我的客户有一个文件管理系统;我致力于将它从 Rails 2 升级到 Rails 3(现在是 Rails 3.1)。我们主要重新开发了这个系统,因为早期的系统已经很老了。除了一个之外,所有功能都可以正常工作。该应用程序允许用户下载分配给他们的文档。当用户登录时,他们可以看到分配给他们的文档并可以下载。它工作得很好。这是有效的代码:

有一个客户,他们(我的客户)已经为他们制定了早期的解决方案,以便在通过基于 .NET 的 Web 服务(或任何可能被调用的服务)请求时发送文档。Web 服务以用户身份进行身份验证,然后转发到文档下载路径。我能够使 Web 服务进行身份验证,然后重定向到下载文件的控制器操作,但它不起作用。服务器日志说一切正常:

我已经更改了特定的名称和 IP。请注意,IP (12.123.12.123) 用于托管 Web 服务的服务器。

我正在与开发 .NET Web 服务的开发人员通话,他说除了内容长度为 -1 并且他没有收到任何内容外,他得到了所有的标头正确。他说所有其他标题都是正确的。

解决问题;我通过尝试设置所有可能的选项(x_sendfile、流、处置等)尝试了 send_file 的多种变体。我还尝试设置标题:

但是当我使用 Web 服务下载文件时,没有任何效果。但是,相同的方法直接在浏览器中工作[我通过绕过代码中的身份验证进行测试]。

我尝试使用 send_date,但它不起作用:

作为一种解决方法,我尝试了 redirect_to 而不是发送文件,并在公用文件夹中使用了一个测试文件,它可以工作。虽然不安全,但这似乎工作正常。唯一的问题是浏览器现在正在打开文档而不是下载它。

请帮我。

更新:问题与 Rails 现在发送分块内容和 Web 服务期望内容长度有关。

0 投票
1 回答
1722 浏览

ruby-on-rails - 在 chrome 中通过 Ruby on Rails 播放 MP3

我正在编写一个 Ruby on Rails 应用程序,它允许用户上传一个 mp3 文件,然后播放它。我让它工作到用户可以做这些事情的地步,但是在寻找歌曲时存在问题。如果用户向前寻找(或让它播放)到歌曲中的某个位置,通常是歌曲的 2/3 或 3/4,然后尝试回到开头(例如 0:20),则播放计时器将转到 0:20,就像它应该的那样,但实际的音频将重新开始,就好像用户寻求到 0:00 一样。

现在我只是试图让这首歌在 chrome 的基本 html5 mp3 播放器中播放,它在传递一个 mp3 文件时使用它。这是我用来提供文件的代码,希望有所有正确的标题:

我将不胜感激对这个问题的任何见解。我觉得我很接近,因为它几乎所有工作,除了在开始附近寻找导致新请求。

谢谢!

0 投票
2 回答
1851 浏览

c - 您将如何接收使用“sendfile”发送的文件?

我正在尝试实现一个基本的文件服务器。我一直在尝试使用此处找到的 sendfile 命令:http: //linux.die.net/man/2/sendfile我正在使用 TCP。

我可以让它很好地发送,但它以二进制发送,我不确定这是否是挂断。

我正在尝试使用 recv 接收文件,但它没有正确通过。有没有一种特殊的方法来接收二进制文件并将其放入字符串中?

编辑:被要求提供一些代码,这里是:

SENDFILE 调用(来自服务器进程)

RECIEVE 调用(来自客户端进程,比循环更基本,只需要一个字母)

编辑:写了一些代码来检查返回值。sendfile 给出 errno 9 - 错误文件号。我假设这是我在调用中的第二个文件描述符(我正在发送的文件的那个)。我将其转换为 int 是因为 sendfile 抱怨它不是 int。

鉴于我在上面的 sendfile 调用中使用的文件指针代码,我应该如何使用发送文件?