在我的 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
。文件内容的删除应推迟到所有对该文件的引用都已关闭为止。您可能想打电话fs.unlink
on the close
event.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)