0

我遇到了一个对我来说似乎很简单的问题,但我一生都无法弄清楚。我有一个简单的 NodeJS 服务器,它使用 ExpressJS 基本上验证电子邮件并授予用户对 zip 文件的访问权限。问题是这在 Chrome 和 Firefox 上效果很好,但在我打开 F12 开发者控制台之前不能在 IE 上运行。我查看了在这里和其他各种网站上遇到的所有文档,但没有提到类似的问题。

我的猜测是 IE 上没有启用某些设置,但我已经验证我启用了活动脚本,并降低了我的安全级别。这个问题发生在我所有的 IE 用户身上,我希望有人能为我解答。

var stat = fs.statSync('myFile.zip');
res.writeHead(200, {
'Content-Type': 'application/octet-stream', 
      'Content-Length': stat.size,
      'Content-disposition' : 'attachment; filename="myFile.zip'
});
console.log('Starting download: ' + 'myFile.zip' );
var stream = fs.createReadStream( 'myFile.zip', { bufferSize: 64 * 1024 });
stream.pipe(res);

//res.download( 'myFile.zip', "myFile.zip" );

正如你所看到的,我已经尝试了 ExpressJSres.download并且stream.pipe得到了完全相同的结果。

4

1 回答 1

0

您缺少双引号,添加它有帮助吗?

'Content-disposition' : 'attachment; filename="myFile.zip"'

如果这不起作用,也许尝试:

res.writeHead(200, {
      'Content-Length': stat.size,
});
res.attachment('myFile.zip');
于 2013-08-31T20:21:36.620 回答