node.js fs.rename() erreur enoent
après avoir téléchargé un fichier sur mon serveur, j'ai essayer de le déplacer vers un autre dossier(même disque), et j'ai eu cette erreur
{[Error:ENOENT,rename 'F\myprojectb231234nsdifhoi2323']
errno:34,
code:ENOENT,
path:'F\\myproject\b231234nsdifhoi2323'
}
suis sur windows et utiliser
app.use(express.bodyParser({
uploadDir:'./Temp'
}));
voici mon renommer le code
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); //Tempb231234nsdifhoi2323
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');
}
});
});
};
on dirait que je obtenir le chemin d'accès incorrect,mais je ne peux pas le comprendre !
Êtes-vous sur de Windows? Si donc, vous devez inclure le côlon (
mais la Temp et de la Vidéo dossier est en même disque
eh bien j'ai modifier le var target_path = 'F:\\myproject\\Video\\' + req.les fichiers.product_video.nom; il fonctionne merci
Pour référence ultérieure, vous pouvez consulter les E*** codes d'erreur ici: github.com/joyent/node/blob/master/deps/uv/include/uv.h
il sera préférable d'utiliser var target_path = __dirname + "\\Video" + req.les fichiers.product_video.nom (si votre fichier est en cours d'F:\myproject)
:
) dans le lecteur de la partie du nom de chemin d'accès c'est à dire F:
.mais la Temp et de la Vidéo dossier est en même disque
eh bien j'ai modifier le var target_path = 'F:\\myproject\\Video\\' + req.les fichiers.product_video.nom; il fonctionne merci
Pour référence ultérieure, vous pouvez consulter les E*** codes d'erreur ici: github.com/joyent/node/blob/master/deps/uv/include/uv.h
il sera préférable d'utiliser var target_path = __dirname + "\\Video" + req.les fichiers.product_video.nom (si votre fichier est en cours d'F:\myproject)
OriginalL'auteur paynestrike | 2012-10-30
Vous devez vous connecter pour publier un commentaire.
Vous accédez à un inexistants fichier - parce qu'un chemin d'accès n'.
Essayer de modifier le chemin d'accès:
changement
"F\myproject\1b2"
à"F:/myproject/1b2"
ou"F:\myproject\1b2"
Si ne fonctionne pas, utilisez: (__dirname fera un chemin relatif au script)
__dirname + "/../../myproject\1b2"
Pour le débogage:
Essayez
read
ce fichier (si vous obtenez des erreurs cela signifie que le chemin est mauvais etrename
est très bien)😀 fixe .. oui, c'était une faute de frappe
OriginalL'auteur Samuel Ondrek
Pour éviter slash problème, vous pouvez utiliser
path.sep
afin de traiter les slash\
basé sur le système d'exploitation.OriginalL'auteur Saran Pal