新手求教,nodejs express表单提交rename文件报错!

var express = require('express');
var Photo = require('../modals/Photo');
var path = require('path');
var fs = require('fs');
var join = path.join;
var router = express.Router();
var multipart = require('connect-multiparty');
var formidable = require('formidable');

var multipartMiddleware = multipart();
router.get('/p', function (req, res, next) {
    res.render('photos', {
        title: 'photos',
       
    });
});

router.get('/', function (req, res,next) {
    res.render('photos/upload', {
        title: 'upload-photo'
    });
});
router.post('/', multipartMiddleware, function (req, res, next) {
    var form = new formidable.IncomingForm();
    form.uploadDir = "K://node";
    //console.log(path.normalize('../'));
    var img = req.files.photo;
            var name = req.body.name;
            console.log(name);
            var p= path.resolve('../photo/photos/'+img.name);
            fs.rename(img.path, p, function (err) {
                if (err) return next(err);
                Photo.Setphoto(name, p);
                console.log(path);
            });
});
module.exports = router;

上传文件后报

Error: EXDEV: cross-device link not permitted, rename 'C:\Users\ADMINI~1\AppData\Local\Temp\c_3UyuFUPvyLtHv4JiATjsTw.css' -> 'K:\Node\express\photo\photos\1.css'
    at Error (native)

有好心人解答一下吗
按网上的解决办法加了

form.uploadDir = "./public";

没用

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题