farmer111 发表于 2016-12-26 08:03:13

Nginx的perl模块支持续传功能

Nginx的perl模块中的sendfile支持续传功能。
1、获取客户端请求的偏移位置。

$range = $r->header_in("Range");
$start = 0;
if( $range =~ /bytes=(\d+)-/ )
{
$start = $1;
}


2、获取文件大小并返回正确的头部信息

@s=stat($r->filename);


$conlen = $s - $start;
$r->header_out('Content-Length',$conlen);
$r->header_out('Content-Range','bytes '.$start.'-'.($s - 1).'/'.$s);


3、发送用户请求的数据。

$r->sendfile($r->filename,$start);
页: [1]
查看完整版本: Nginx的perl模块支持续传功能