3

サーバーにファイルをアップロードした後、それを別のフォルダー (同じディスク) に移動しようとすると、エラーが発生しました

{[Error:ENOENT,rename 'F\myproject\1b231234nsdifhoi2323']
  errno:34,
  code:ENOENT,
  path:'F\\myproject\\1b231234nsdifhoi2323'
}

Windowsで使用しています

app.use(express.bodyParser({
    uploadDir:'./Temp'
}));

これが私の名前変更コードです

exports.upload = function(req, res,next){
    console.log( req.body);
    console.log(req.files);
    var tmp_path = req.files.product_video.path;
    var target_path = '\\Video\\' + req.files.product_video.name;

    console.log(tmp_path);       // Temp\1b231234nsdifhoi2323
    console.log(target_path);    // \Video\name

    fs.rename(tmp_path, target_path, function(err) {
        if (err) {
            console.log(err)
        };
        fs.unlink(tmp_path, function() {
            if (err){
                console.log(err)
            }else{
                res.send('File uploaded to: ' + target_path + ' - ' + req.files.product_video.size + ' bytes');

            }
        });
    });
};

パスが間違っているように見えますが、わかりません!

4

2 に答える 2

2

パスが存在しないため、存在しないファイルにアクセスしています。

パスを編集してみてください:またはに
変更"F\myproject\1b2"します"F:/myproject/1b2""F:\myproject\1b2"

うまくいかない場合は、以下を使用してください: (__dirname はスクリプトからの相対パスを作成します)
__dirname + "/../../myproject\1b2"

デバッグ用:このファイルを
試してください(同じエラーが発生した場合 - パスが正しくなく、問題がないことを意味します)readrename

于 2014-01-30T14:42:42.913 に答える