Я пишу приложение HTML WYSIWYG. После того, как пользователь отредактирует веб-страницу, они должны будут нажать кнопку загрузки и попросить их браузер сохранить их отредактированную веб-страницу. Я не хочу хранить отредактированную веб-страницу на своем сервере, но отправлю файл на локальный компьютер.Скачать файл в NodeJS
До сих пор в моем приложении, я могу изменить шаблон, захватить его HTML, когда пользователь нажимает на кнопку загрузки, и используя fs.createWriteStream метод NodeJS'S, писать HTML для вновь созданного HTML-файла. Однако он создает файл на моем сервере вместо запроса браузера сохранить файл в папке «Загрузка». Я использую Socket.io, чтобы сообщить серверу загрузить содержимое HTML.
После исследования выяснилось, что для того, чтобы браузер предложил пользователю сохранить файл загрузки, HTTP-заголовки должны быть установлены с помощью заголовка Content-Disposition: attachment.
В кратком изложении, когда пользователь нажимает кнопку загрузки в своем приложении, что мне делать, чтобы новый файл был создан и сохранен непосредственно на локальном компьютере пользователя, а не на моем сервере?
Это то, что я в моем server.js файле:
io.sockets.on('connection', function(socket) {
socket.on('downloadHTML', function(data) {
var file = fs.createWriteStream('PearlEdit-template-Martketing.html', {flags: 'w'})
.write(data.html);
});
});
Просто служить файл с соответствующими заголовками при щелчке ссылки не используйте веб-сайты для этого – adeneo
Я не уверен на 100%, что вы имеете в виду. Не могли бы вы уточнить? – Rashad