2017-06-22 3 views
1

j'ai une application expresse et je utilise multer aux fichiers télécharge, le problème est quand je l'exécution de l'application sur le serveur de production avec PM2 le fichier de téléchargement multer m'a donné une erreur:télécharger des fichiers Multer avec PM2

" Erreur: ENOENT: pas un tel fichier ou répertoire, ouvrir 'uploads/img.png' à Erreur (natif) "

mais quand je l'exécute avec" Debug = nomprojet: * npm start "son juste fonctionne très bien.

Notez que je crée déjà le répertoire des téléchargements avec toutes les permissions "lire et écrire pour n'importe qui".

(désolé pour mon mauvais anglais)

Répondre

0

Je vais essayer de deviner le problème.

À votre pm2 n'utiliserez-vous pas cwd param, donc votre application démarre avec un mauvais répertoire racine.

0

J'ai résolu le même problème par le changement chemin relatif au chemin absolu

var storage = multer.diskStorage({ 
destination: function(req, file, cb) { 
    cb(null, __dirname + '/public/uploads') 
}, 
filename: function(req, file, cb) { 
    var fileFormat = (file.originalname).split("."); 
    cb(null, file.fieldname + '-' + Date.now() + "." + 
    fileFormat[fileFormat.length - 1]); 
} 
}) 

La troisième ligne avant que je change comme ci-dessous

cb(null, './public/uploads')