如何处理Node.js中的中断文件上传

时间:2015-10-13 07:49:13

标签: javascript node.js file-upload upload busboy

当访问者按下STOP,REFRESH或BACK时,或者在文件上传到我的Node.js服务器时关闭浏览器时,会出现问题。服务器中会留下一些垃圾文件。

为了解决这个问题,我尝试先将上传的文件保存到临时目录,然后在访问者再次上传内容时删除这些文件。但是,显然Node.js上次锁定了上传的文件,从而阻止了它被删除。

当我停止Node.js服务器时,文件上的锁定将被释放,最后它将被删除。

如何在不重新启动服务器的情况下删除垃圾文件?我正在使用busboy包。

2 个答案:

答案 0 :(得分:1)

我会使用像Skipper这样的包来上传文件,你只在上传完成时将文件保存到磁盘,如果用户在中间的某处中断了上传,那么文件永远不会被保存,你只需清除缓冲区。

答案 1 :(得分:0)

好。我通过在30分钟后手动结束流解决了busboy的问题。这将解锁文件以便下次删除。

setTimeout(function(){fstream.end();},1800000);