Lorsque j'essaie de télécharger des images et de les enregistrer dans le dossier public / upload_files via Postman, cette erreur s'affiche
node -v v10.15.3
npm -v 6.9.0
"Erreur: ENOENT: aucun fichier ou répertoire de ce type"
Ceci est mon code
const express = require('express'); const router = express.Router(); const multer = require('multer'); const storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null,'./public/uploaded_files'); }, filename: function(req, file, cb) { cb(null,new Date().toISOString() + file.originalname); } }); const upload = multer({storage:storage}); router.post('/', upload.single('file'), (req,res,next) => { console.log(req.file); }); module.exports = router;
J'essaye juste d'enregistrer les images dans le dossier suivant public / upload_files
4 Réponses :
J'ai apporté quelques modifications à mon code et cela a fonctionné après avoir passé 9 heures
J'ai ajouté cette ligne
var storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null,path.join(__dirname,'../upload')) }, filename: function(req, file, cb) { cb(null,Date.now() + path.extname(file.originalname)) } });
et ceci
cb(null,Date.now() + path.extname(file.originalname))
Utilisez
"error": "ENOENT: no such file or directory
au lieu de
cb(null, new Date().toISOString() + file.originalname);
pour empêcher
cb(null, Date.now() + file.originalname);
Cela peut être dû à un nom de fichier interdit ou à une action du système d'exploitation. Avez-vous exécuté le programme sous un système d'exploitation différent? Par exemple: Certains OS n'autorisent pas le nom de fichier avec certains caractères spéciaux comme produit par la nouvelle fonction Date (). ToISOString (). Extra: je pense que ce code provient du cours Node js de Max.
const storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null, './public/uploaded_files'); }, filename: function(req, file, cb) { // cb(null, new Date().toISOString() + file.originalname) // this is wrong cb(null, Date.now() + file.originalname); } });
Bien que ce code puisse résoudre la question, y compris une explication expliquant comment et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre post, et entraînera probablement plus de votes positifs. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, pas seulement à la personne qui la pose maintenant. Veuillez modifier votre réponse pour ajouter des explications et donner une indication des limitations et hypothèses applicables.
ne fonctionne pas j'ai essayé.
les dossiers que vous avez écrits, existent-ils?
oui ça existe. Cela me donne cette erreur Erreur: ENOENT: aucun fichier ou répertoire de ce type, ouvrez 'D: \ Event \ public \ upload_files \ 2019-04-20T20: 34: 21.195Z025. JPG'
`D: \ Event \ public \ upload_files` ce chemin est-il correct?
oui c'est le chemin complet D: \ Event \ public \ upload_files
Essayez peut-être sans le point final
.
dans votre chemin comme ceci'\ public \ upload_files'