Slim 3 PHP フレームワークを使用してファイルをダウンロードしようとしています。Slim 3 もそうだと確信しているので、Slim 2 はかなり単純明快でしたが、私にはさっぱりわかりません。
どんな助けでも大歓迎です。ここのドキュメントに基づいて: http://www.slimframework.com/docs/objects/response.htmlここ からパッケージを追加しました: https://github.com/guzzle/psr7
したがって、この時点での私のコードは次のようになります。
$app->get('/worksheet/download/{filename}', function ($request, $response, $args) {
error_log("__________________________");
$fileName = $args['filename'];
error_log($fileName);
$newStream = new \GuzzleHttp\Psr7\LazyOpenStream($fileName, 'r');
$newResponse = $response->withHeader('Content-type', 'application/octet-stream')
->withHeader('Content-Description', 'File Transfer')
->withHeader('Content-Disposition', 'attachment; filename=' . basename($fileName))
->withHeader('Content-Transfer-Encoding', 'binary')
->withHeader('Expires', '0')
->withHeader('Cache-Control', 'must-revalidate')
->withHeader('Pragma', 'public')
->withHeader('Content-Length', filesize($fileName))
->withBody($newStream);
return($newResponse);
});