public static function getDownloadResponse($document)
{
$direct_url = $document->getDirectUrl();
if ($direct_url) {
return redirect($direct_url);
}
$stream = $document->getStream();
if ($stream) {
$headers = ['Content-Type' => Document::$types[$document->type]['mime'], 'Content-Length' => $document->size];
$response = Response::stream(function () use($stream) {
fpassthru($stream);
}, 200, $headers);
} else {
$response = Response::make($document->getRaw(), 200);
$response->header('content-type', Document::$types[$document->type]['mime']);
}
return $response;
}