W silex mogę to zrobić, aby wymusić pobranie pliku:Jak wdrożyć wznawiania Pobierz w 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();
Działa to dobrze dla mniejszych plików. Jednak mój przypadek użycia wymaga pobrania dużego pliku, który może zostać wstrzymany/wznowiony przez menedżera pobierania.
Istnieje przykład pliku streaming, ale nie wydaje się to, czego szukam. Czy ktoś wcześniej to zrobił? Mógłbym po prostu użyć answer from here i zrobić z tym. Ale byłoby miło, gdyby istniał na to silexy sposób.
Rdzeń Silex HTTP oparty jest na komponentach Symphony, powinieneś dodać [tag: symfony], aby rozszerzyć liczbę czytelników twojego pytania. – Fractaliste
Znalazłem coś (nie napisanego z Symfony Components/Silex), ale wygląda na to, że działa. Https: //gist.github.com/kosinix/4cf0d432638817888149 – ohartl
@ohartl - Napisałem to :-) – kosinix