Как скачать динамически созданный файл и сделать location этой страницы?

У меня динамически создается файл с каким-то текстом, нужно его скачать, а после сделать header("Location").
Я не понимаю как это сделать, ведь я посылаю браузеру заголовок:

header('Content-disposition: attachment; filename=test.txt');
header('Content-type: text/plain');
echo "Что-то пишем в файл";

header('Location: ' . $_SERVER["REQUEST_URI"]);


И естественно выдает ошибку, потому что текст уже выводится, а после мы еще посылаем заголовки
Можно как-то это пофиксить или предложите варианты альтернативы(Файл на сервере хранить не очень хочется)
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
@yevgenyyakushov Автор вопроса
Григорий Васильков, в общем, сделал через js, но не знаю насколько это хорошо, просто вариантов больше не вижу, ибо генерируются уникальные значения, а потом уходят в hash, после чего делаю хук на js

<a download="password.txt" id="data" href="#" style="display: none;"></a>
<script>
	var type = "data:application/octet-stream;base64, ";
	var text = "Данные для авторизации \\r\\nЛогин: ' . $login . ' \\r\\nПароль: ' . $password . '";
	var base = btoa(unescape(encodeURIComponent(text)));
	var res = type + base;
	document.getElementById("data").href = res;
	document.getElementById("data").click();
	location.href=location.href;
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
к сожалению только яваскрипт. ты не можешь отправить файл, а потом сделать редирект. отдача файла это код 200 - все ок. а редирект это 301 код

логика действий - попробовать сделать как на megashare помоему или какой-то такой известный обменник который отдает файл своим способом, я полагаю он как-то его по кускам передают яваскрипту через вебсокет наверное, а потом соединяют куски файла уже на клиенте и скачивают как бы мгновенно. и после этого мгновенного скачивания - перенаправить человека
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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