2017-02-09 3 views
1

au moment où j'ai ceci:fichier multer sans extension

var multipart = require('connect-multiparty'); 
var multipartMiddleware = multipart(); 

router.post('/registo',upload.single('file'), function (req, res) { 

, mais l'extension de fichier pour le fichier passé est pas enregistré, et multer lui donner un nom au hasard, donc j'ai vu quelque chose comme ça pour corriger cette problème:

var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
    cb(null, './uploads/') 
    }, 
    filename: function (req, file, cb) { 
    crypto.pseudoRandomBytes(16, function (err, raw) { 
     cb(null, raw.toString('hex') + Date.now() + '.' + mime.extension(file.mimetype)); 
    }); 
    } 
}); 

var upload = multer({ storage: storage }); 



router.post('/registo',upload, function (req, res) { 

mais que je reçois une erreur: connexion refusée et je ne sais pas pourquoi cela se produire

Répondre

0

Comment envoyer un fichier à l'aide multer. Code noeud

var multer = require('multer'); 
var fs = require('fs'); 
var Grid = require('gridfs-stream'); 
var router = express.Router(); 
var upload = multer({dest: 'uploads/'}); 


mongoose.createConnection('mongodb://127.0.0.1/obi'); 
router.post('/upload', upload.any(), function (req, res) { 
    var conn = mongoose.connection; 
    var Grid = require('gridfs-stream'); 
    Grid.mongo = mongoose.mongo; 
    var path = req.files[0].path 
    var path_name = req.files[0].originalname 
    var gfs = Grid(conn.db); 
    var writestream = gfs.createWriteStream({ 
     filename: path_name 
    }); 
    fs.createReadStream(path).pipe(writestream); 
    writestream.on('close', function (file) { 
     res.json(file.filename + 'Written To DB'); 
     fs.unlink(req.files[0].path, function() { 
      res.json({id: file._id, message: "success"}); 
     }); 
    }); 
}) 

espoir que cela fonctionne pour vous.

+0

Ai-je besoin de Grille? –

+0

bien mon code fonctionnait avec la première logique, quand je veux changer le nom de fichier avec la logique 2 ça ne marche pas :( –

+0

oui, gridfs-stream est utilisé pour stocker et lire des fichiers de mongodb –