Content-Type:image/jpeg 不在本地工作

Content-Type: image/jpeg not working on live working on local

我对 slim 框架还很陌生,我正在尝试下载图像文件。使用 php 在本地工作正常。但是当在服务器上为 slim 应用相同的代码时,它不起作用。搜索了很多但没有运气,即 here and this one。这是我的代码

$app->get('/image', function ($request, $response, $args) {
//header('Content-type: image/png');
//header('Content-Disposition: attachment; filename=go-logo.jpg');
//$contents = file_get_contents(getcwd() . '/' . $_GET['img']);
$filename=getcwd() . '/' . $_GET['img'];
header("Content-Length: " . filesize($filename));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=go-logo.jpg');
readfile($filename);
return $contents;

});

错误是显示它是一个 html 文件。我想要这样

您需要在响应 object 上设置 headers。 然后将文件写入Response body.

return $response->withHeader("Content-Type", "application/octet-stream")
        ->write($fileContents);