Node / Express res.download(path,filename)不支持文件名中包含斜杠的字符串?

时间:2018-01-09 00:51:50

标签: node.js express download

如果我写:

res.status(200).download(p, 'he/lo/ldkaf/fd.mp3');

下载将显示为:

fd.mp3

目前唯一的解决方法是将所有斜杠转换为空格:

res.status(200).download(p, 'he/lo/ldkaf/fd.mp3'.split('/').join(' '));

但我想保留这些斜线。这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

.download()的第二个参数是仅文件名(无路径),如果/当浏览器保存文件时,应该在浏览器中作为默认文件名提供。不允许斜杠,因为它们不是文件名中的合法字符(因为它们通常是路径分隔符),浏览器会忽略服务器建议的任何路径(作为安全问题)。