@RJs45

Как выдать диалог «сохранить как» в ZF2?

Есть страница с формой. Юзер загружает файл и сабмитит форму. Генерируется xml файл.
Как в Zend Framework сделать, чтобы генерированый контент юзер мох сохранить при помощи диалога "сохранить" и после этого ему показалась эта же страница?
Вариант с "сохранять на сервер, выдавать ссылку для скачки" не подходит.
  • Вопрос задан
  • 2357 просмотров
Решения вопроса 1
HangGlider
@HangGlider
ZF2 way предполагает использование кода фреймворка для работы с заголовками, а потому:

$type = 'text/xml';
$data = '...';
$fileName = 'data.xml';

$response = $this->getResponse();
$response->setContent($data);

$headers = new \Zend\Http\Headers();
$headers->addHeaderLine('Content-Type', $type)
        ->addHeaderLine('Content-Disposition', 'attachment; filename="' . $fileName . '"')
        ->addHeaderLine('Content-Length', strlen($data));

$response->setHeaders($headers);
return $response;


Если читаете из файла, то первый блок с $response надо заменить на:

$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($fileName, 'r'));
$response->setStatusCode(200);

или перевести на работу с "X-Accel-Redirect"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
...
$xml = "...";  // XML-данные
header('Content-type: text/xml');
header('Content-Disposition: attachment; filename="data.xml"');
header('Cache-Control: max-age=0');

echo $xml;
die();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы