错误:EXDEV:不允许跨设备链接,请重命名nodejs

我用强大的上传文件,但我得到这个错误

Error: EXDEV: cross-device link not permitted, rename 

这是我的代码:

 router.post('/file',function(req,res) { var form = new formidable.IncomingForm(); function checkFile(filename) { if(filename.match(/\.(jpg|jpeg|png)$/i)){ return form.uploadDir = path.join(__dirname, '../public/uploads/img'); }else{ return form.uploadDir = path.join(__dirname, '../public/uploads'); } } form.multiples = true; form.maxFieldsSize = 2 * 300 * 300; // every time a file has been uploaded successfully, // rename it to it's orignal name form.on('file', function(field, file) { var fileName = file.name; var d = new Date(); var t = d.getTime(); var newName = md5(file.name) + t; fs.rename(file.path,path.join(checkFile(fileName),newName),function(err) { if(err) console.log(err); console.log('Success') }); }); // log any errors that occur form.on('error', function(err) { console.log('An error has occured: \n' + err); }); // parse the incoming request containing the form data form.parse(req, function(err, fields, files) { }); }) 

当我删除function checkFile并更改为form.uploadDir = path.join(__dirname, '../public/uploads'); ,它工作完美。 我的错在哪里? 请帮帮我

问题是用重命名方法。 使用'mv'包来移动你的文件

https://www.npmjs.com/package/mv