gpt4 book ai didi

javascript - 从 PC 中自定义目录上的 Node 服务器下载文件

转载 作者:行者123 更新时间:2023-12-03 03:24:12 26 4
gpt4 key购买 nike

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

这是浏览器代码:

<!DOCTYPE html>
<html>
<body>

<p id="demo"/>
<h2 id="header2">Hello</h2>
<button id="ajaxButton">Make a request!</button>
<button id="download">Download</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#ajaxButton").click(function(){
$.get("index1.html", function(data, status){
console.log("Data: " + data + "\nStatus: " + status);
$("#header2").text(data);
});
});
//==
$("#download").click(function(){
$.get("index1.html-download", function(data, status){
console.log("Data: " + data + "\nStatus: " + status);
$("#header2").text(data);
});
});
//==
});
</script></body>
</html>

**** 编辑 ****

它的工作原理是这样的:

app.get('/index1.html-download', function(req, res){
console.log(req.url);
res.download(__dirname + '/download.txt', 'download.txt', function(err){
if (err) {
console.log(err);
}
else {
console.log("File send without errors!");
}
});
});

最佳答案

您应该使用 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');
});

关于javascript - 从 PC 中自定义目录上的 Node 服务器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46424831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com