Wpis z mikrobloga

Pomocy.
Tworze webserwis, który ma zwrócic plik, tzn. sprawdzam zapytanie, jeżeli jest rezultat - zwracam plik.
Otóż problem jest taki, że pobrany plik jest… pusty. Jeżeli w funkcji napiszę var_dump(''), plik będzie posiadał zawartość. Wysyłałem plik przsy użyciu nagłówków. Teraz korzystam z funkcji Yii i rezultat jest taki sam.

$url = $this->createFileUrl('20150225', 'Mirko');
$size = filesize($url);
if (file_exists($url)) {
return Yii::app()->getRequest()->sendFile(basename($url),
@file_get_contents($url));
} else {
throw new CHttpException(404,
'The requested page does not exist.');
}
Yii::app()->end();
return;
wrzucałem to już dziś z innym kodem, ale usunąłem, bo wydało mi się, że wszystko działa, a okazało się, że miałem var_dump i dlatego było ok.

#php #webdev #yii
  • 2
@mariecziek: whatever…
Rozwiązałem to tak:

header('Content-Description: File Transfer');
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename='.basename($url));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: '.filesize($url));
ob_clean();
flush();
readfile($url);