错误: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'包来移动你的文件