nodejs返回下载文档,文档名称出现汉字出现乱码解决
2015-06-29 00:00
676 查看
var userAgent = (req.headers['user-agent']||'').toLowerCase();
if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) {
res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(filename));
res.download(path,encodeURIComponent(filename),function(err){
if(err){
console.log(err);
}
});
} else if(userAgent.indexOf('firefox') >= 0) {
res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + new Buffer(filename).toString('binary')+'"');
res.download(path,new Buffer(filename).toString('binary'),function(err){
if(err){
console.log(err);
}
});
} else if(userAgent.indexOf('gecko') >= 0) { //ie11
res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(filename)+'"');
res.download(path,encodeURIComponent(filename),function(err){
if(err){
console.log(err);
}
});
} else {
/* safari等其他非主流浏览器只能自求多福了 */
res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(filename).toString('binary'));
res.download(path,new Buffer(filename).toString('binary'),function(err){
if(err){
console.log(err);
}
});
}
if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) {
res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(filename));
res.download(path,encodeURIComponent(filename),function(err){
if(err){
console.log(err);
}
});
} else if(userAgent.indexOf('firefox') >= 0) {
res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + new Buffer(filename).toString('binary')+'"');
res.download(path,new Buffer(filename).toString('binary'),function(err){
if(err){
console.log(err);
}
});
} else if(userAgent.indexOf('gecko') >= 0) { //ie11
res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(filename)+'"');
res.download(path,encodeURIComponent(filename),function(err){
if(err){
console.log(err);
}
});
} else {
/* safari等其他非主流浏览器只能自求多福了 */
res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(filename).toString('binary'));
res.download(path,new Buffer(filename).toString('binary'),function(err){
if(err){
console.log(err);
}
});
}
相关文章推荐
- node.js安装环境的检查和配置
- Node.js学习-----------异步文件读取
- 《Node.js项目实践:构建可扩展的Web应用》
- nodejs开发调试时,使用supervisor
- node操作mysql数据库
- Leetcode 24 Swap Nodes in Pairs
- nodejs学习过程的问题
- ENode框架Conference案例分析系列之 - 文章索引
- nodejs简单二维码生成
- 树莓派安装node.js
- 推荐近期15个 Node.js 开发工具
- nodejs中Async库介绍
- WAS集群:记一次Node Agent不活动问题解决过程
- WAS集群:记一次Node Agent不活动问题解决过程
- Reverse Nodes in k-Group short and 24ms AC
- 快速搭建NODEJS + Requirejs
- ENode框架Conference案例分析系列之 - Quick Start
- WebSocket 一场Web 通讯革命悄然来临——Node.js摸石头系列之五
- WebSocket 一场Web 通讯革命悄然来临——Node.js摸石头系列之五
- 深入浅出NodeJS笔记(二)