【发布时间】:2014-09-22 09:14:34
【问题描述】:
在silex 我可以这样做来强制下载文件:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
$app = new Silex\Application();
// Url can be http://pathtomysilexapp.com/download
$app->get('/download', function (Request $request) use ($app) {
$file = '/path/to/download.zip';
if( !file_exists($file) ){
return new Response('File not found.', 404);
}
return $app->sendFile($file)->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'download.zip');
});
$app->run();
这适用于较小的文件。但是我的用例需要下载一个可以由下载管理器暂停/恢复的大文件。
有一个关于文件streaming 的示例,但它似乎不是我想要的。以前有人这样做过吗?我可以使用answer from here 并完成它。但是,如果有一种笨拙的方式来做到这一点,那就太好了。
【问题讨论】:
-
Silex HTTP 的核心是基于 Symphony 组件,您应该添加symfony 以扩展您的问题的读者数量
-
我发现了一些东西(不是用 Symfony Components/Silex 编写的),但它似乎可以工作..gist.github.com/kosinix/4cf0d432638817888149
-
@ohartl - 我写了那个要点 :-)
-
这有点好笑:)