2016-09-07 8 views
0

私はこれを何時間も研究しており、Googleは何の助けにもなっていない。 Slim 3を使ってイメージをレスポンスとして書くにはどうすればいいですか?何を試しても、バイナリデータが画像の代わりに表示されます。ここで私が試したコードの最初の部分です。スリム3レスポンスとして画像を書く

$image = file_get_contents("image_location"); 
return $response->withHeader("Content-Type", "image/jpeg")->write($image); 

以上、Content-DispositionやContent-Lengthなどのさまざまなヘッダーを追加しました。 base64として出力しようとしました。あなたがGoogleの検索結果を見つけたら、私はそれを試したのです。何も動作しません。もちろん、この単純なPHPはスタンドアロンファイルではうまく動作しますが、Slimではうまく動作しません。

header("Content-Type: image/jpeg"); 
readfile("image_location"); 

私の推測では、Slim出力時にデータに何かが起きるが、わからない。最悪のシナリオ私はちょうどテンプレートを作成し、ベース64をimg srcとして出力します。私はそれを避けようとしていました。

UPDATE調査の結果、content-typeがtext/htmlにリセットされているように見えますが、その理由はわかりません。どんな洞察も歓迎です。

答えて

0

好奇心が強い人にとって、私は解決策を見つけました。私は$ next($ request、$ response)を持っていたミドルウェアまで追跡しました。しかし私は$ responseに戻り値を代入することを怠ったので、Slimは応答をデフォルト値に設定していました。

今、私は、ミドルウェアは、次のものが含まを確認するために知っている:

$response = $next($request, $response); 
関連する問題