Отправка многочастного ответа для загрузки в Zend Framework - PullRequest
2 голосов
/ 25 апреля 2010

Я отправляю файлы в помощнике действий для загрузки (частями, если необходимо), например:

...
$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 голосов
/ 29 января 2011

Обычно я использую Noginn Action Helper для отправки файла для скачивания. Вот хорошее описание в другом ответе: Как добавить сторонний Action Helper в приложение Zend Framework 1.8+?

URL-адрес SendFile.php: https://github.com/noginn/noginn/blob/master/Noginn/Controller/Action/Helper/SendFile.php

...