Symfony2 wymusza pobieranie jpg zwraca uszkodzony plik

Po kilku z wielu postów związanych z tematem w końcu wymyśliłem tę wersję kodu „wymuszonego pobrania”:

public function downloadAction(Request $request){

    $filename= 'test.jpg';
    $response = new Response();

    $response->headers->set('Content-Type','image/jpg');
    $response->headers->set('Content-Disposition', 'attachment; filename="' . basename($filename) . '"');        

    $response->sendHeaders();
    $response->setContent(file_get_contents($filename)); 

    return $response;
} 

Teraz działa to dobrze z plikami zip (oczywiście przy użyciu odpowiedniego typu zawartości), ale dla jpg dzieje się coś innego. Używając HexCompare do sprawdzenia zarówno oryginalnego, jak i pobranego JPG, odkryłem, że pobrana wersja dodaje „EF BB BF” na początku pliku. Wydaje się, że jest to wystarczające dla Przeglądarki obrazów systemu Windows, która kończy zgłaszanie uszkodzonego pliku.

Z drugiej strony ten sam pobrany plik jpg otwiera się idealnie w programie Adobe Photoshop (być może mniej rygorystyczny?)

Pomysły? ktoś?

Z góry dziękuję.

Z

AKTUALIZACJA: Pobrane pliki Zip przy użyciu tego kodu można otworzyć tylko za pomocą WinRAR lub WinZIP, Wyciąg Zip w Eksploratorze Windows pokazuje komunikat o błędzie Błąd pliku.

AKTUALIZACJA2: OK, wiem, że teraz jest kwestia BOM. Jak mogę pozbyć się tego paskudnego „EF BB BF” z wyniku file_get_content?

questionAnswers(1)

yourAnswerToTheQuestion