Вы не можете сделать это с обычным HTML 5, так как у него нет никакого механизма для работы с локальными файлами (это в любом случае подразумевает угрозу безопасности).Вам по крайней мере понадобится JavaScript или Flash для локального хранения данных.
Но вы не можете получить доступ к локальной файловой системе с помощью JavaScript.Вы можете использовать только файлы cookie или возможности localStorage браузера.
Вы также не можете сделать это с помощью Flash.Обе системы работают одинаково: они хранят информацию в месте, указанном браузером / Flash.Кроме того, в обоих случаях пространство ограничено (ограничение варьируется между платформами и даже отдельными настройками).
Единственный способ сделать это - отправить данные на сервер, например, используя скрытую форму,сервер отвечает заголовком Content-Disposition: attachment
и отправляет файл обратно клиенту.Например:
<form action="doLoopback.php" method="POST" name="theForm">
<input type="hidden" id="data-container" name="data">
</form>
<span id="trigger">→ Click here! ←</span>
<script>
var theData = '123, 2334, "Fé℗⇒oo"';
function sendData() {
document.getElementById('data-container').value = theData;
document.theForm.submit();
}
window.onload = function () {
var el = document.getElementById('trigger');
el.onclick = sendData;
};
</script>
и с помощью PHP файл ответов гласит:
<?php
if (isset($_POST['data'])) {
header('Content-Disposition: attachment; filename=foo.csv');
header('Content-Type: application/octet-stream');
echo $_POST['data'];
}
?>