在我的Express服务器上,我想获取用户上传的文件并重命名它,使其与其用户名匹配。如果用户名上载了新文件,则将替换以前的文件。
代码如下:
var newPath = 'uploads/' + user.username + '.' + (file.extension).toLowerCase();
var basePath = path.resolve(__dirname + '../../../') + '/';
// Copy, rename and delete temp file
var is = fs.createReadStream(basePath + file.path);
var os = fs.createWriteStream(basePath + newPath);
is.pipe(os);
is.on('end', function (error) {
if (err) return res.send(500);
fs.unlink(basePath + file.path);
});
问题是fs.unlink(basePath + file.path);
实际上不会删除我机器(OSX 10.9.2)上的旧文件。如何确保删除临时文件?
文件basePath + file.path
具有由读取流is
引用的链接。应推迟删除文件内容,直到关闭对该文件的所有引用。您可能希望在close
事件上调用fs.unlink
。
上一篇:多久会采取非程序员学习C#,.NET框架和SQL?程序员、框架、多久、NET
下一篇:MimeKit-无法将';Org.BouncyCastle.Asn1.DerApplicationSpecific';类型的对象强制转换为';Org.Boun