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?