Как принудительно загрузить файл .csv в Symfony 2, используя объект Response?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как принудительно загрузить файл .csv в Symfony 2, используя объект Response?

Сообщение Anonymous »

Я создаю контроллер «Загрузка» с использованием Symfony 2, единственной целью которого является отправка заголовков, чтобы я мог принудительно загрузить файл .csv, но он работает неправильно.

Код: Выделить всё

$response = new Response();
$response->headers->set('Content-Type', "text/csv");
$response->headers->set('Content-Disposition', 'attachment; filename="'.$fileName.'"');
$response->headers->set('Pragma', "no-cache");
$response->headers->set('Expires', "0");
$response->headers->set('Content-Transfer-Encoding', "binary");
$response->headers->set('Content-Length', filesize($fileName));
$response->prepare();
$response->sendHeaders();
$response->setContent(readfile($fileName));
$response->sendContent();

Код: Выделить всё

$fileName
— это строка «info.csv». Таковы мои действия внутри моего контроллера, оператора возврата нет. Когда я попытался вернуть объект Response, в браузере отобразилось содержимое файла, а не ожидаемый результат.

Обнаруженная проблема заключается в следующем. что на некоторых страницах я получаю файл info.csv, а на других получаю только сообщение:

Код: Выделить всё

No webpage was found for the web address: http://mywebpage.com/download

Код: Выделить всё

Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.
Я полностью уверен, что файл существует, значит, что-то не так. Кроме того, маршрутизация.yml работает правильно, поскольку я получаю файл с других страниц, которые также ссылаются на этот путь.
Журнал ошибок Apache ничего об этом не показывает.
Кто-нибудь раньше принудительно загружал файл .csv в Symfony 2? Если да, то что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/103 ... nse-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»