哪一个最适合流媒体和文件下载?
请提供示例.
如何测试发送文件的控制器操作?
如果我controller.should_receive(:send_file)使用"缺少模板" 进行测试失败,因为没有任何内容被渲染.
sendfile()在内核空间中的两个文件描述符之间复制数据.在某个地方,我看到如果你在Linux中用C编写Web服务器,你应该使用send()和recv()而不是使用write()和read().那么send()也使用内核空间吗?
无论我用什么发送 - sendfile()或send() - 在客户端我都会使用recv()吗?
另一方面,man page说:"send()和write(2)之间的唯一区别是标志的存在.使用零标志参数,send()等同于write(2)."
var app = require('express')();
app.get('/', function(req, res) {
res.sendFile(__dirname + "/" + "index.html");
});Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="style.css">Run Code Online (Sandbox Code Playgroud)
我使用上面的node.js代码发送一个html文件.要获取格式化的html文件,我需要发送另一个css文件(style.css).
我的问题是:如何使用sendFile()发送这两个文件(index.html和style.css)并将它们集成在客户端?
我想编写Python代码以将文件从客户端发送到服务器.服务器需要保存从客户端发送的文件.但我的代码有一些我无法解决的错误.以下是我的服务器代码:
# server.py
from SimpleXMLRPCServer import SimpleXMLRPCServer
import os
server = SimpleXMLRPCServer(('localhost', 9000))
def save_data(data):
handle = open("x123.dat", "wb")
handle.write(data)
handle.close()
server.register_function(save_data, 'save_data')
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
和客户端代码:
# client.py
import sys, xmlrpclib
proxy = xmlrpclib.Server('http://localhost:9000')
handle = open(sys.argv[1], "rb")
proxy.save_data(handle.read())
handle.close()
Run Code Online (Sandbox Code Playgroud)
但后来我运行我的代码,客户端返回以下错误(这是在Windows上):
Traceback (most recent call last):
File "client.py", line 6, in <module> proxy.save_data(handle.read())
File "c:\python27\lib\xmlrpclib.py", line 1224, in __call__
return self.__send(self.__name, args)
File "c:\python27\lib\xmlrpclib.py", line 1575, in __request
verbose=self.__verbose
File "c:\python27\lib\xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种下载xml文件的方法.我用:
file_path = 'folder/' + xml_name + '.xml'
send_file file_path, :type => "text/xml"
Run Code Online (Sandbox Code Playgroud)
但这总是下载一个空文件.文件本身有16 KB的数据......
这是为什么?
Maechi
问题是我在使用时无法发送标题send_file,是否有解决方法?
我希望 能够在将文件发送到客户端时发送标头.
return send_file(mp3_filepath, 'audio/mpeg')
Run Code Online (Sandbox Code Playgroud) 这是服务器(sendfile)部分:
offset = 0;
for (size_to_send = fsize; size_to_send > 0; ){
rc = sendfile(newsockd, fd, &offset, size_to_send);
if (rc <= 0){
perror("sendfile");
onexit(newsockd, sockd, fd, 3);
}
offset += rc;
size_to_send -= rc;
}
close(fd); /* la chiusura del file va qui altrimenti rischio loop infinito e scrittura all'interno del file */
memset(buffer, 0, sizeof(buffer));
strcpy(buffer, "226 File Successfully transfered\n");
if(send(newsockd, buffer, strlen(buffer), 0) < 0){
perror("Errore durante l'invio 226");
onexit(newsockd, sockd, 0, 2);
}
memset(buffer, 0, sizeof(buffer));
Run Code Online (Sandbox Code Playgroud)
这是客户端(recv文件)部分的一部分: …
我正在学习swift,我使用下面的代码向服务器发送请求.它适用于简单的请求,我从服务器得到响应.我的问题是我无法将文件发送到服务器.
代码:
let parameters = parameter
let request = NSMutableURLRequest(URL: NSURL(string: requestUrl)!)
let boundaryConstant = "-----Boundary+\(arc4random())\(arc4random())"
let contentType = "multipart/form-data; boundary=" + boundaryConstant
let boundaryStart = "--\(boundaryConstant)\r\n"
let boundaryEnd = "--\(boundaryConstant)--\r\n"
let body:NSMutableString = NSMutableString();
for (key, value) in parameters {
body.appendFormat(boundaryStart)
body.appendFormat("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n")
body.appendFormat("\(value)\r\n")
}
body.appendFormat(boundaryEnd)
request.HTTPMethod = "POST"
request.setValue(contentType, forHTTPHeaderField: "Content-Type")
request.HTTPBody = body.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard error == nil && data != nil else {
// check for fundamental …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 8.04上使用Nginx 1.0.0和Passenger 3.0.7运行Rails 3站点.
在我的Nginx error.log中,我开始看到X-Accel-Mapping header missing相当多的消息.谷歌搜索导致我的文档Rack::Sendfile,并在Nginx的文档.
现在,我的应用程序可以通过多个域访问,我send_file在我的应用程序中使用它来提供特定于他们请求的域的一些文件,例如,如果你来domain1.com/favicon.ico我查找favicon in public/websites/domain1/favicon.ico.这工作正常,我认为我不需要/想要让Nginx参与并创建一些私有区域,我存储这些文件,正如Rack::Sendfile文档中的示例所示.
我怎样才能摆脱错误信息?