在下载期间保留文件的修改日期

时间:2017-02-20 04:07:53

标签: node.js http-headers

我收到了反馈,以保留下载文件的修改日期。如果我在zip文件中提供文件,我找到了保存它的方法,但是当我从我的nodejs服务器提供文件时遇到了问题。

以下是我目前的实施情况:

  try{
    var stat = fs.statSync(fullpath);
    self.response.writeHead(200, {
         'Content-Type': mimeType,
         'Last-Modified': stat.mtime // not working
    });
    var fileStream = fs.createReadStream(fullpath);
    fileStream.pipe(self.response);
    fileStream.on('end', function() {
      console.log("complete")
    });
  }catch(e)
  { //to handle user cancel the download and bring down whole system
    logger.error("streaming failed,because of:"+e.message);
  }

最初我认为设置标题' Last-Modified'应该做的伎俩,但显然不是。需要能够在Chrome中运行,但如果它可以在浏览器中运行,那就太棒了。

注意:这不是因为使用" Tue,1994年11月15日12:45:26 GMT"而不是stat.mtime也不起作用。

更新:从2017年初开始,浏览器似乎无法实现,如link所示,执行此操作的唯一方法是curl或wget。

1 个答案:

答案 0 :(得分:1)

您是指浏览器下载并保存文件时文件的修改日期吗?您无法这样做,因为这需要远程计算机上的操作系统访问权限。文件上的修改日期是客户端计算机上文件系统的函数。