0
아래 코드 스 니펫에서 $file
배열의 내용이 브라우저에 렌더링됩니다.슬림 3 프레임 워크 - 생성 된 파일을 반환하는 방법?
코드는 작동하지만 브라우저에 보낼 스트림으로 이진 문자열을 변환하는 더 좋은 방법이 있어야한다고 생각합니다.
if (is_array($file)) {
$filename=preg_replace('/[^A-Za-z0-9 \\._-]+/', '', $file['filename']);
// -- This feels like a hack
$stream = fopen('php://memory', 'r+');
fwrite($stream, $file['content']);
rewind($stream);
// --
return $response->withHeader('Content-Type', $file['mimetype'])
->withHeader('Content-Transfer-Encoding', 'binary')
->withHeader('Content-Disposition', 'inline; filename="' . basename($filename) . '"')
->withHeader('Expires', '0')
->withHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
->withHeader('Pragma', 'public')
->withBody(new \Slim\Http\Stream($stream));
}
스트림으로 컨텐츠를 변환하는 적절한 방법은 무엇입니까?