Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从PC中自定义目录上的节点服务器下载文件_Javascript_Node.js_Browser_Frontend_Backend - Fatal编程技术网

Javascript 从PC中自定义目录上的节点服务器下载文件

Javascript 从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

我正在尝试制作一个程序,提示浏览器端的用户从nodeJS服务器下载文件。我读到了关于expressJSfunction
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');
});

已尝试,我在控制台中获取了文件的内容,但未下载该文件。您需要
内容处置
标题。我已经用它修改了代码。现在,我将文件内容作为文本输入到新打开的选项卡中。仍然没有下载文件:(