【问题标题】:Delete a file after download it using nodejs使用nodejs下载文件后删除文件
【发布时间】:2015-03-13 02:49:37
【问题描述】:

我正在使用 Node.js,我需要在用户下载文件后删除它。有没有办法在管道进程结束后调用回调方法,或者为此目的的任何事件?

exports.downloadZipFile = function(req, res){
    var fileName = req.params['fileName'];
    res.attachment(fileName);
    fs.createReadStream(fileName).pipe(res); 

    //delete file after download             
};

【问题讨论】:

  • fs.unlink(fileName, callBack);
  • @Qix 我已经用谷歌搜索过了,这就是我发布问题的原因。
  • Qix 是人们离开堆栈溢出的一个例子
  • 作为记录,我没有通过谷歌搜索找到答案,但我确实找到了这个对我有帮助的问题。也许如果我已经知道答案,我就会知道要谷歌搜索什么。感谢您询问拉格纳
  • Qix,我用谷歌搜索得到了这个问题。我想我们只是被零除。

标签: javascript node.js fs


【解决方案1】:

您可以在resfinish 事件上调用fs.unlink()

或者你可以使用文件流的end事件:

var file = fs.createReadStream(fileName);
file.on('end', function() {
  fs.unlink(fileName, function() {
    // file deleted
  });
});
file.pipe(res);

【讨论】:

  • 有没有等效的方法来用 Koa 做到这一点? ctx.body = fs.createReadStream(filename) 是我之前在做的,但我想用你的方法删除'end'上的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 2011-01-03
相关资源
最近更新 更多