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

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

    //delete file after download             
};

#1楼 票数:21 已采纳

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

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

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

  ask by Ragnar translate from so

未解决问题?本站智能推荐:

1回复

从链接下载文件并检查下载是否完整 nodejs

我尝试从链接下载文件 这是我的代码 问题是,服务器返回“完成”但下载的文件仍未完成。 有人能帮我吗? 谢谢:D
1回复

NodeJS:下载文件并转换为二进制字符串

我对Node.js相当陌生,并且在当前主题方面苦苦挣扎: 我正在调用一个API,该API返回一个文件(audio.amr)。 现在,我需要在运行时将此文件转换为二进制字符串,而不进行保存,以便进一步传递。 我尝试将接收到的对象传递给“ fs”模块,但是没有任何运气。 现在,
30回复

如何使用 Node.js 下载文件(不使用第三方库)?

如何在不使用第三方库的情况下使用Node.js 下载文件? 我不需要什么特别的。 我只想从给定的 URL 下载文件,然后将其保存到给定的目录。
1回复

通过FTP下载文件,写入/ tmp /并使用AWS Lambda将.txt内容输出到控制台

我仅使用单个Node包basic-ftp尝试下载TXT文件并将内容写入控制台。 接下来,我将编辑文本,因此需要使用fs 。 只是努力在FTP程序中使用createWriteStream的输出。 有人可以帮助我将TXT文件写入AWS Lambda中的/ tmp /文件,然后在使用crea
1回复

如何获取具有名称的文件(位于本地计算机的文件夹中)并使用Node.js在浏览器中下载文件

如何在不使用第三方库的情况下从本地计算机中获取文件名称和dowloand在Node.js中相同的文件? 我已经看到了与此类似的答案- 如何使用Node.js下载文件(不使用第三方库)? 但它显示使用URL下载,但是我需要从本地获取并下载,这可能吗? 我正在使用的节点版本是-6.10.0
1回复

如何通过API调用(Node.js)从ReadableStream中读取和下载文件?

我正在使用ssh2-sftp-client从远程服务器获取文件,一旦获取并下载这些文件,我就遇到了问题。 首先,当API被命中时,我能够使用get()方法下载文件-我还可以在console.log语句中返回整个文件内容,然后开始返回Buffer内容。 我更新了这个: npm安装ss
5回复

从 url 下载文件并将其上传到 AWS S3 而不保存 - node.js

我正在编写一个应用程序,它从 url 下载图像,然后使用aws-sdk将其上传到 S3 存储桶。 以前我只是像这样下载图像并将它们保存到磁盘。 然后像这样将图像上传到 AWS S3 但我想跳过将图像保存到磁盘的部分。 有什么方法可以将request(url)的响应通过pipe传输到变量然后
1回复

使用nodejs从目录中删除FS文件?

当我从客户端按预期工作时收到事件stopRecording时,我正在删除文件-文件已从目录中删除。 我的问题是,当我使用Windows(WebStorm IDE)查找目录时,文件名仍然可见,但是当我单击文件名时,它已从目录中删除。 我不确定我应该在这里做什么,因为功能是否正常工作只是