我们已经看了在“控制器”内提交模板(render)和发送字符串(render_to_string)。应答的第三个部分是发送数据(典型地,但不是必须的,是文件的内容)给客户端。
A、send_data 发送包含二进制数据的字符串给客户端。
send_data(data, options...)
发送一个数据流给客户端。典型地浏览器将结合使用内容类型与部署,两者在选项内设
置,来决定这个用数据做什么。
def sales_graph
png_data = Sales.plot_for(Date.today.month)
send_data(png_data, :type => "image/png", :disposition =>
"inline")
end
选项:
1、:filename 字符串, 在保存数据时,建议浏览器使用缺省的文件名。
2、:type 字符串, 内容类型,缺省为application/octet-stream。
3、:disposition 字符串, 建议浏览器应该使用内联的(选项inline)或者是下载的文
件并保存(缺省选项attachment)。
B、send_file 发送文件的内容给客户端。
send_file(path, options...)
发送指定文件给客户端。方法设置Content-Length,Content-Type,Content-
Disposition,和Content-Transfer-Encodeing 头。
选项:
1、:filename 字符串, 当保存文件时,建议浏览器使用缺省文件名。如果没有设置,
缺省是文件名路径。
2、:type 字符串, 内容类型,缺省应用application/octet-stream。
3、:disposition 字符串,建议浏览器应该使用内联的(选项inline)或者是下载的文件
并保存(缺省选项attachment)。
4、:streaming true 或false ,如果是false, 则整个文件被读入服务器内存并发送
给客户端。否则,文件以:buffer_size 块来读并写给客户端。
You can set additional headers for either send_ method using the headers
attribute in the controller.
def send_secret_file
send_file("/files/secret_list")
headers["Content-Description"] = "Top secret"
end
分享到:
相关推荐
send_data,--发送数据 nack,--没有应答状态 start1,--开始状态 send_read,--发送要进行读操作状态 ask3,--应答状态3 read_data,--读取数据 stop,--结束 idle--空闲状态 ); signal current_state:state := ...
I2C->DR=system->i2c.send_frame.data[system->i2c.send_frame.proc]; system->i2c.send_frame.proc++; system->i2c.debug.reserve[system->i2c.int_debug_count].type=0x62; } ...
4、Send2_Byte---------发送双字节程序, 带有方向参数 5、Out595-----------------------------595锁存程序 6、SendSeg-----------------------发送位码字节程序 八、 LCD1602函数 1、LCD_Check_Busy --------------...
2. **时钟同步**:通信通过SCL时钟线同步,主设备产生时钟信号,从设备根据时钟信号发送和接收数据。 3. **数据传输**:数据在SDA线上进行双向传输,每个时钟周期传输一位数据。 4. **起始和停止条件**:起始条件是...
- `TWI_SEND(data)`: 在主机模式下发送数据。 - `STOP()`: 发送停止信号。 - `MASTER()`: 进入主机模式。 - `SLAVE()`: 进入从机模式。 ### 延时函数 文件中还定义了几种延时函数,用于确保TWI通信过程中的信号同步...
这个“SIM900A-send-english.rar”压缩包文件包含了一个利用SIM900A模块发送英文短信的程序,同时提到了如何扩展功能来发送中文短信。 1. **SIM900A模块详解** - SIM900A模块由Quectel公司生产,支持GSM 850/900/...
DSR协议中定义了多种类型的包用于路由发现和数据传输。这些包包括: - **DataPacket**:用于在网络中传输数据。 - **RequestPacket**:路由请求包,用于启动路由发现过程。 - **ReplyPacket**:路由回复包,响应...
标题中的"ex_07b_ack_data_rx.rar_ex_zlf"和描述中的"ex 03b rx send resp rar"似乎指向一个与网络通信或数据传输相关的主题,特别是在无线通信或者网络协议中常见的应答机制。"ack"通常代表"acknowledgement",即...
这些函数实现了基本的I²C通信流程,包括开始和结束通信、发送和接收数据等操作。 #### 3. 写入与读取操作 ```c void writebyte_24c64(uchar addH, uchar addL, uchar data_24c64) // 写入数据 { I2C_Start(); I...
随后,可以发送和接收数据。 ```python import socket def main(): # 创建套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 输入服务器IP和端口号 dest_ip = input("请输入服务器...
通过对`sk_write_queue`和`sk_send_head`等关键数据结构的理解,以及对发送函数间关系的分析,我们可以更深入地了解TCP是如何管理和控制数据包的发送流程的。此外,发送前的克隆过程保证了数据包在传输过程中的可靠...
sendMessage函数用于发送一帧数据帧,该函数将type、len和buf三个参数传递给send_data函数,以发送设备状态信息或应答信息。 recv_cmd函数 recv_cmd函数用于接收主机命令,该函数接收一帧数据帧,并对其进行检测,...
- 发送或接收数据(I2C_SendData和I2C_ReceiveData) - 检测应答(I2C_CheckEvent) - 发送应答信号(I2C_SendAcknowledge) - 等待接收完成(I2C_WaitOnFlag) 在实际应用中,STM8S可以通过I2C接口连接各种外围...
- `I2C_SendData()`:向从设备发送数据。 - `I2C_ReceiveData()`:从从设备接收数据。 - `I2C_WaitAck()`:等待从设备应答。 - `I2C_StopCondition()`:发送STOP条件。 这些函数会涉及到STM32的中断服务程序,以便...
send_data函数用于发送数据帧,函数参数包括命令类型、数据长度和数据缓冲区指针。函数调用send_byte函数将数据发送到总线上。 recv_cmd函数 recv_cmd函数用于接收主机命令,函数参数包括命令类型指针。函数返回值...
I2C接口允许微控制器与其他设备如传感器、存储器、显示驱动器等进行通信,它只需要两根线——SDA(数据线)和SCL(时钟线)即可完成数据传输。标题中的“i2c_init.tar.gz_i2c”表明这是一个与I2C初始化相关的Verilog...
- **i2c_send_byte(sendchar)**: 发送一个字节数据给从设备。 - **i2c_receive_byte()**: 从从设备接收一个字节数据。 - **i2c_read_data(cmd_w)**: 读取从设备的数据,cmd_w为读取命令。 ### 6. 数据处理与显示 -...
`:同上,但用于`buf2_length`。 - `bit buf1_flag;`:声明一个位类型变量`buf1_flag`,用于标记`buf1`的状态。 - `bit buf2_flag;`:同上,但用于`buf2_flag`。 - `unsigned char state1, state2;`:声明两个无符号...
- `ADXL345_SendByte()`和`ADXL345_RecvByte()`用于发送和接收数据。 3. **数据读取与处理**: - `Single_Read_ADXL345()`用于读取单个寄存器数据。 - `Multiple_Read_ADXL345()`用于连续读取多个寄存器数据。 ...
- `I2C_SendData()`: 发送数据到I2C总线。 - `I2C_ReceiveData()`: 从I2C总线接收数据。 - `I2C_EnableAck()`: 启用应答信号。 - `I2C_DisableAck()`: 禁用应答信号。 在`STM32F030xx_I2CTest`这个测试代码中,...