在Zend Framework中为下载发送多部分响应

时间:2010-04-25 13:14:28

标签: php http zend-framework download response

我正在发送动作助手中的文件以进行下载(如果需要,可以部分发送),如下所示:

...
$response->sendHeaders();

$chunksize = 1 * (1024 * 1024);
$bytesSent = 0;

if ($httpRange) {
    fseek($file, $range);
}

while(!feof($file) &&
   (!connection_aborted() &&
   ($bytesSent < $newLength))
) {
    $buffer = fread($file, $chunksize);
//      $response->appendBody($buffer); // this would be better
    print($buffer);
    flush();
    $bytesSent += strlen($buffer);
}
fclose($file);

我怀疑更好的方法是使用$response对象而不是print

使用Zend Framework发送大响应对象的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

通常我使用Noginn Action Helper发送文件进行下载。 这是另一个答案中的一个很好的描述: How to add a third-party Action Helper to a Zend Framework 1.8+ application?

Url to SendFile.php: https://github.com/noginn/noginn/blob/master/Noginn/Controller/Action/Helper/SendFile.php