Как сделать кнопку загрузки, которая сохраняет содержимое строки?

У меня есть PHP-скрипт, который создает строку, которую я хочу загрузить в виде файла, нажав кнопку.

Я знаю, как сохранить строку в файл на веб-сервере и указать на нее ссылкой, но это не то, чем я хочу заниматься.

Я хочу, нажав кнопку, чтобы передать файл пользователю, содержащему строку.

ОБНОВЛЕНИЕ: то, что я ищу, очень близко к этому:

<a href="data:application/octet-stream;charset=utf-16le;base64,//5mAG8AbwAgAGIAYQByAAoA">text file</a>

Вопрос, который ставит передо мной, заключается в том, как мне преобразовать строку $ в эту часть base64 и что такое utf-16le ?? Может кто-нибудь объяснить это немного?

ОБНОВЛЕНИЕ На самом деле некоторые плохие парни расстроились из-за того, что не могут ответить, и закрыли тему. Не спрашивая меня. Некоторые люди здесь участвуют в этом соревновании, чтобы набрать очки. Но я пошел дальше и нашел решение своего вопроса.

Вам просто нужно добавить download="file.txt"

<a href="data:application/octet-stream;charset=utf-16le;base64,//5mAG8AbwAgAGIAYQByAAoA" download="file.txt">text file</a>

Таким образом вы скачиваете файл. не поток.

развлекайся.


person Max Muster    schedule 16.12.2015    source источник
comment
Пожалуйста, добавьте части вашего кода, которые вы уже пробовали, чтобы нам было с чем поработать.   -  person davejal    schedule 16.12.2015
comment
Вам нужно сохранить его на своем сервере, а затем сделать ссылку для скачивания...   -  person BananaBuisness    schedule 16.12.2015
comment
Подскажите пожалуйста как стримить файл, а то он слишком бортовой. Если вы имеете в виду встроенные данные файла, проверьте это: stackoverflow.com/questions/3665115/   -  person Sheepy    schedule 16.12.2015
comment
Отлично, ответ Мэтью Флашена - это то, что я имею в виду, но я не понимаю эту часть: base64, // 5mAG8AbwAgAGIAYQByAAoA. Я также проверил это. а как сделать строку в base64,//5mAG8AbwAgAGIAYQByAAoA???   -  person Max Muster    schedule 16.12.2015
comment
stackoverflow.com/questions/600807/   -  person ivan_pozdeev    schedule 16.12.2015
comment
Я нашел это: base64_encode в php, это оно?   -  person Max Muster    schedule 16.12.2015


Ответы (2)


Это может быть решением:

<?php
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="yourfilename.ini"');

//output the contents the file should contain. For example:
echo "a=1\nb=2\nc=3";
?>

Нашел это здесь

person FelixSFD    schedule 16.12.2015
comment
Он хочет передать файл, а не текст... - person BananaBuisness; 16.12.2015
comment
Я написал свой ответ на основе его исходного сообщения - person FelixSFD; 16.12.2015
comment
Вы изменили исходный ответ... - person BananaBuisness; 16.12.2015

Что вы хотите сделать, так это сохранить файл на своем сервере, а затем просто использовать html следующим образом:

<a href="http://example.com/files/myfile.txt" target="_blank">Download</a>

Конечно, ссылка будет динамически изменена некоторыми js или jQuery (не знаете, как это сделать? Перейдите на https://stackoverflow.com/a/179717)

Я бы отправил ответ из файла php, который будет содержать имя файла или путь...

Также посмотрите на этот ответ

https://stackoverflow.com/a/2793756

person BananaBuisness    schedule 16.12.2015