首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误: EXDEV:不允许跨设备链接,重命名nodejs

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

Stack Overflow用户
提问于 2017-05-23 23:02:51
回答 3查看 8.7K关注 0票数 10

我上传的文件很可怕,但是我得到了这个错误

代码语言:javascript
运行
复制
Error: EXDEV: cross-device link not permitted, rename

这是我的代码:

代码语言:javascript
运行
复制
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');时,它工作得很完美。我哪里错了?请帮帮我

EN

Stack Overflow用户

发布于 2019-02-21 13:16:29

谢谢。使用'mv‘包而不是文件系统'rename’方法来解决在文件上传期间将文件移动到另一个文件夹时发生的错误:

错误: EXDEV:交叉设备链接不允许,重命名.“

使用cmd安装包'mv‘:

代码语言:javascript
运行
复制
npm install mv

用法:

代码语言:javascript
运行
复制
var mv = require('mv');

mv('source/file', 'dest/file', function(err) {
....
....
});
票数 10
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44146393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档