Node.js下载文件时如何解决文件名乱码问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计142个文字,预计阅读时间需要1分钟。
Node.js下载文件文件名乱码问题
1. [代码] 文件名乱码问题javascriptvar userAgent=(req.headers['user-agent'] || '').toLowerCase();if(userAgent.indexOf('msie')===0 || userAgent.indexOf('chrome')===0) { res.setHeader('Content-Disposition', 'attachment; filename*=utf-8\'\'');}
1.[代码]文件名乱码问题
var userAgent = (req.headers['user-agent']||'').toLowerCase(); if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(fileName)); } else if(userAgent.indexOf('firefox') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(fileName)+'"'); } else { /* safari等其他非主流浏览器只能自求多福了 */ res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(fileName).toString('binary')); } res.setHeader('Content-Type', 'application/octet-stream;charset=utf8'); var opt = { flags: 'r' }; var stream = fs.createReadStream(Path, opt); stream.pipe(res); stream.on('close', function () { res.end(); });
本文共计142个文字,预计阅读时间需要1分钟。
Node.js下载文件文件名乱码问题
1. [代码] 文件名乱码问题javascriptvar userAgent=(req.headers['user-agent'] || '').toLowerCase();if(userAgent.indexOf('msie')===0 || userAgent.indexOf('chrome')===0) { res.setHeader('Content-Disposition', 'attachment; filename*=utf-8\'\'');}
1.[代码]文件名乱码问题
var userAgent = (req.headers['user-agent']||'').toLowerCase(); if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename=' + encodeURIComponent(fileName)); } else if(userAgent.indexOf('firefox') >= 0) { res.setHeader('Content-Disposition', 'attachment; filename*="utf8\'\'' + encodeURIComponent(fileName)+'"'); } else { /* safari等其他非主流浏览器只能自求多福了 */ res.setHeader('Content-Disposition', 'attachment; filename=' + new Buffer(fileName).toString('binary')); } res.setHeader('Content-Type', 'application/octet-stream;charset=utf8'); var opt = { flags: 'r' }; var stream = fs.createReadStream(Path, opt); stream.pipe(res); stream.on('close', function () { res.end(); });

