单击按钮下载在节点js Web服务器上托管的文件

时间:2018-01-22 18:38:17

标签: javascript node.js http webserver

我是nodejs的新手。 我想使用nodejs创建一个Web服务器,它将托管一些静态文件。为此,我设法做到了 -

var http = require('http');

var finalhandler = require('finalhandler');
var serveStatic = require('serve-static');

var serve = serveStatic("./");

var server = http.createServer(function(req, res) {
  var done = finalhandler(req, res);
  serve(req, res, done);
});

server.listen(8080);

我有一个测试文件,比如hostedFile.zip。 当我点击url http://localhost:8080/hostedFile.zip时,会下载此文件。 现在我想在按钮点击上添加按钮到网页并下载相同的文件。 我试过的是 -

var http = require('http');

var finalhandler = require('finalhandler');
var serveStatic = require('serve-static');

var serve = serveStatic("./");

var server = http.createServer(function(req, res) {
  var done = finalhandler(req, res);
  res.end('<p><a href="/hostedFile.zip">Download</a></p>\n');
  serve(req, res, done);
});

server.listen(8080);

但它不起作用。我缺少什么(概念)?

2 个答案:

答案 0 :(得分:0)

您可以在链接中使用download属性

res.end('<p><a download="file.zip" href="/hostedFile.zip">Download</a></p>\n');
  

此属性指示浏览器下载URL而不是导航到URL,因此系统会提示用户将其另存为本地文件。如果属性具有值,则在“保存”提示中将其用作预填充文件名   MDN

答案 1 :(得分:0)

使用HTML download属性。来自w3schools

  

点击链接时下载文件(而不是导航到文件):

<a href="/hostedFile.zip" download>