Как можно добавить разрывы строк к данным: текст / обычный URI? - PullRequest
1 голос
/ 05 марта 2019

Моя цель - создать текстовый файл с разрывами строк, используя data URI в теге / атрибуте <a download> HTML5. В настоящее время разрывы строк, похоже, игнорируются.

Ниже приведен пример использования атрибута HTML5 download, где выводом является файл HTML со ссылкой. При нажатии ссылка может быть использована для открытия или сохранения файла.

Пример с PHP для генерации такой ссылки для скачивания:

<?php
    //generate a string line with line breaks
    //i.e. using PHP:
    //where PHP_EOL is "The correct 'End Of Line' symbol for current platform"
    $content = "line" . PHP_EOL . "line"; 
?>

<a download="a.txt" href="data:text/plain;utf8,<?=$content?>">Download</a>

Несмотря на перенос строки в настоящее время, мой вывод:

lineline

когда ожидаемый результат будет:

line
line

Изучая строку с использованием HEX, в ней есть символы 0A 0D, которые представляют CR и LF, поэтому они действительно находятся перед тегом <a download>.

Есть ли способ заставить разрывы строк отображаться в загруженном файле? Если нет, то является ли это ограничение тега download в HTML?

Ответы [ 2 ]

1 голос
/ 05 марта 2019

Используйте base 64, кодируйте его .

Ниже указано "Hello\nWorld"

<a download="foo.txt"
href="data:text/plain;base64,aGVsbG8Kd29ybGQ=">
    Download
</a>
0 голосов
/ 05 марта 2019

В какой программе вы открываете файл? это блокнот? Это может быть проблемой ...

...