2015-09-07 5 views
0

Следующий код создает изображение в нужном месте, однако изображение неправильно названо.Multer не переименовывает изображение

routes.js

var upload = multer({ 
    dest: './client/shared/assets/images/logos', 
    rename: function (fieldname, filename, req, res) { 
    console.log('Rename YO!') 
    console.log(fieldname) 
    console.log(filename) 
    console.log(req) 
    return 'test' + '-'+Date.now(); 
    } 
}); 

app.post('/uploads/logo',upload.single('file'), function(req, res){ 
console.log('Upload photo yo!') 
    console.log(req.body) // form fields 
    console.log(req.file) // form files 
    res.status(204).end() 
}); 

create.controller.js

$scope.saveLogo = function(file) { 
    console.log(file); 
    file.upload = Upload.upload({ 
    url: '/uploads/logo', 
    method: 'POST', 
    fields: { 
     name: $scope.item.name, 
     subdomain: $scope.item.subdomain 
    } 
    }); 

    file.upload.then(function (_res) { 
    console.log(_res) 
    file.result = _res.data; 
    }, function (_res) { 
    console.log(_res) 
    if (_res.status > 0) 
     $scope.errorMsg = _res.status + ': ' + _res.data; 
    }); 

    file.upload.progress(function (evt) { 
    // Math.min is to fix IE which reports 200% sometimes 
    file.progress = Math.min(100, parseInt(100.0 * evt.loaded/evt.total)); 
    }); 
}; 

Я не знаю, что я здесь отсутствует. Я пытаюсь ограничить функциональность multer определенным пост-действием, не так ли?

Заранее спасибо

ответ

1

решаемые с этой маленькой лакомый:

var storage = multer.diskStorage({ 
    destination: function (req, file, cb) { 
    cb(null, '/tmp/my-uploads') 
    }, 
    filename: function (req, file, cb) { 
    cb(null, file.fieldname + '-' + Date.now()) 
    } 
}) 

var upload = multer({ storage: storage }) 

подход изменился с описанным выше способом с момента последнего выпуска