コントローラーに次のコードがあります。
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$file = 'myfile.html';
$contentType = finfo_file($finfo, $file);
finfo_close($finfo);
$response = new Response();
$response->headers->set('Content-Description', 'File Transfer');
$response->headers->set('Content-Type', $contentType);
$response->headers->set('Content-Disposition', 'attachment; filename='.basename($file));
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->headers->set('Expires', '0');
$response->headers->set('Cache-Control', 'must-revalidate');
$response->headers->set('Pragma', 'public');
$response->headers->set('Content-Length', filesize($file));
$response->setContent(file_get_contents($file));
$response->send();
return $response;
このコードを開発用コンピューター (PHP 5.3.15 を搭載した Mac) で実行すると、必要なファイルとそのコンテンツが取得されます。しかし、テスト サーバー (PHP 5.3.10 を使用した Ubuntu 12.04) で実行すると、ファイルは取得されますが、コンテンツは 2 倍になります (1 つのファイルで 2 倍のファイルが取得されます)。
私は$contentType = 'application/octet-stream';
何が間違っているのですか?