2017-10-20 1 views
0

je copie un fichier .jpg dans un autre répertoire (C: \ myFaceApp \ dropbox \ exprtedFaces)Pas en mesure de copier un fichier dans un répertoire

Mon fichier source: C:/myFaceApp/Dropbox/faces/Monika1 /1404039d-2be3-43bc-b20b-35c0f4a5954b/1404039d-2be3-43bc-b20b-35c0f4a5954b_00-00-04_crop.jpg

J'utilise le bloc de code suivante pour copier

targetPath=opts.exportDir; //C:\myFaceApp\dropbox\exprtedFaces 

fs.createReadStream(req.query.facePath).pipe(fs.createWriteStream(targetPath)); 
res.write(JSON.stringify({ OK: 1 })); 
res.end(); 

Je reçois un erreur comme celle-ci:

Erreur: EISDIR: opération illégale sur un répertoire, ouvrez 'C: \ myFaceApp \ dropbox \ exprtedFaces'

+0

Vous devez copier le code en question n'envoyez pas d'image – imcvampire

+0

Erreur 'EISDIR' dit: Ce chemin n'est pas un fichier, mais un répertoire. – qqilihq

+1

Vous pouvez également utiliser fs.copyFile https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback – RidgeA

Répondre

1

Votre problème est que vous essayez d'écrire dans un répertoire n'est pas un fichier. createWriteStream prend un nom de fichier comme argument. Essayez ceci:

fs.createReadStream(req.query.facePath).pipe(fs.createWriteStream(path.join(targetPath ,"file.jpg"))); 

Vous devez donner ofc un nom non codé en dur, cela est juste un exemple. Jetez un oeil sur le module de chemin pour cela.

+0

Mais j'ai fait la même chose avec un fichier vidéo, qui fonctionne fichier pour moi –

+0

Je ne sais pas ce que vous Je l'ai déjà fait car cela ne fait pas partie de la question, mais c'est ainsi que 'createWriteStream' fonctionne. – Diasiare

+0

Merci cela aidé –