使用express框架下载文件,但是失败了,直接看代码
<!DOCTYPE html>
<html>
<head>
<title>express 主页</title>
<meta charset="utf-8">
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<p>
I love you!
</p>
<button>click there to download a pictutre</button>
<script type="text/javascript">
$(function(){
$('button').click(function(){
$.ajax({
url:'/download',
type:'get',
success:function(result){
alert("Resquest has been received!");
}
})
})
})
</script>
</body>
</html>
以下是node.js代码
var express = require("express");
var app = express();
app.use(express.static('public'));
app.locals.title = "My app";
app.get("/",function(req,res){
console.log("resquest has been received!");
res.sendFile("public/index.html");
res.end();
})
app.get("/download",function(req,res){
res.download('public/example.jpg','example.jpg',function(err){
if(err)
console.log(err);
else
console.log("download successfully");
});
})
app.listen(3000);
console.log("OK");
求解疑
高洛峰2017-04-17 15:19:43
I suggest writing your download button directly as
<a href="/download" download>下载</a>
http://www.expressjs.com.cn/4...
Pay attention to the first parameter of the res.download method
res.download('/report-12345.pdf', 'report.pdf', function(err){
if (err) {
// Handle error, but keep in mind the response may be partially-sent
// so check res.headersSent
} else {
// decrement a download credit, etc.
}
});
Then your image is too blurry even though it is large in size. . .
天蓬老师2017-04-17 15:19:43
index.html
<!DOCTYPE html>
<html>
<head>
<title>express 主页</title>
<meta charset="utf-8">
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<p>
I love you!
</p>
<a href="/download" download>下载</a>
</body>
</html>
node.js
var express = require("express");
var app = express();
app.use(express.static('public'));
app.locals.title = "My app";
app.get("/",function(req,res){
console.log("resquest has been received!");
res.sendFile("public/index.html");
res.end();
})
app.get("/download",function(req,res){
res.download('public/example.jpg', 'example.jpg',function(err){
if(err)
console.log(err);
else
console.log("download successfully");
});
})
app.listen(3000, function(err) {
if(err) console.error(err);
console.log("OK");
});
You can visit http://localhost:3000/download
separately with a browser to see if it can be downloaded. You can directly 404 the background service and it is not ready yet. Let’s not do the joint debugging of the front and back ends.