fs writeFile在应用程序根目录下创build临时文件

我有下面的代码片段[加载文件到服务器。 它在本地环境中按预期工作,但不在Web服务器中工作。

使用connect-multiparty

path = req.files.FIELDNAME.path; ogname = req.files.video.originalFilename; function(path , ogname, callback) { var fs = require('fs'); var uploadDir = process.cwd() + "/public/uploads/"; fs.readFile(path, function (err, data) { var originalFilename = new Date().getTime() + '-' + ogname.replace(/[\s,:-]+/g, "-"); var newPath = uploadDir + originalFilename; var relatPath = "/uploads/" + originalFilename; fs.writeFile(newPath, data, function (err,result) { callback(relatPath); }); }); } 

它按预期在/public/uploads创build文件,但是在app root中也留下了一些东西。 喜欢这个

在这里输入图像描述

https://github.com/andrewrk/connect-multiparty

这个中间件将在你的服务器上创build临时文件,而不是清理它们。

你必须手动删除它们:

 //.... fs.writeFile(newPath, data, function (err,result) { callback(relatPath); fs.unlink(path, function (err) { if (err) throw err; }); }); 

请注意, process.cwd()不会返回应用程序根path,而是返回工作目录。 改用__dirname

使用重命名速度更快,并免除手动删除文件。