Javascript 从PC中自定义目录上的节点服务器下载文件
我正在尝试制作一个程序,提示浏览器端的用户从nodeJS服务器下载文件。我读到了关于expressJSfunctionJavascript 从PC中自定义目录上的节点服务器下载文件,javascript,node.js,browser,frontend,backend,Javascript,Node.js,Browser,Frontend,Backend,我正在尝试制作一个程序,提示浏览器端的用户从nodeJS服务器下载文件。我读到了关于expressJSfunctionres.dowload,但我想我在客户端遗漏了一些东西,因为我没有下载任何文件,也没有收到下载位置的提示 以下是NodeJS代码: var http = require("http") var express = require("express") var url = require("url") var fs = require("fs") var app = expres
res.dowload
,但我想我在客户端遗漏了一些东西,因为我没有下载任何文件,也没有收到下载位置的提示
以下是NodeJS代码:
var http = require("http")
var express = require("express")
var url = require("url")
var fs = require("fs")
var app = express();
app.get('/', function(req, res) {
console.log(req.url);
res.sendFile( __dirname + "/index.html");
})
app.get('/index1.html', function(req, res){
console.log(req.url);
res.send("Riko");
//res.sendFile( __dirname + "/index1.html");
});
app.get('/index1.html-download', function(req, res){
console.log(req.url);
res.sendFile(__dirname + "/download.txt");
});
app.listen(80, function(){
console.log('Server running at http://127.0.0.1:80/');
});
这是浏览器代码:
你好
提出请求!
下载
$(文档).ready(函数(){
$(“#ajaxButton”)。单击(函数(){
$.get(“index1.html”,函数(数据、状态){
console.log(“数据:+数据+”\n状态:+状态);
$(“#标题2”)。文本(数据);
});
});
//==
$(“#下载”)。单击(函数(){
$.get(“index1.html下载”,函数(数据、状态){
console.log(“数据:+数据+”\n状态:+状态);
$(“#标题2”)。文本(数据);
});
});
//==
});
您应该使用sendFile方法:
app.get('/index1.html-download', function(req, res){
console.log(req.url);
res.setHeader('Content-disposition', 'attachment; filename=download.txt');
res.sendFile('download.txt')
});
您还必须在新选项卡中打开文件,而不仅仅是通过ajax下载:
$("#download").click(function(){
window.open('http://your-site.com/index1.html-download','_blank');
});
已尝试,我在控制台中获取了文件的内容,但未下载该文件。您需要
内容处置
标题。我已经用它修改了代码。现在,我将文件内容作为文本输入到新打开的选项卡中。仍然没有下载文件:(