如何使用ng-file-upload在快递js中保存文件图像

时间:2015-11-12 19:49:29

标签: angularjs node.js express ng-file-upload

我是nodejs开发和表达的新手 我学习了MEAN stack nad现在我不知道我怎么能在n工作 在我的路线中,我有这个代码

var express = require('express');
var router = express.Router();
var multer = require('multer');
var upload = multer({ dest: __dirname + '/public/uploads/' });

router.post('/', upload.single('file'), function(req, res) {
   console.log(req.file);
   res.status(200).json({ file: req.file});
});
module.exports = router;

但我保存不是图像。我如何保存图像文件?我的意思是一些解码功能还是什么?

在控制台中我看到了:

{ fieldname: 'file',
 originalname: 'my.jpg',
 encoding: '7bit',
 mimetype: 'image/jpeg',
 destination: '/home/path/mean/public/uploads/',
 filename: '8b6256d4af77641c844480f05806e959',
 path: '/home/path/mean/public/uploads/8b6256d4af77641c844480f05806e959',
 size: 19486 
 }

感谢。

2 个答案:

答案 0 :(得分:1)

所以这段代码对我有用。现在我需要思考如何在新帖子的集合中保存图像。 Smth喜欢 - 我点击保存图像并将图像保存在文件夹上,在响应之后我的ng-model将是post.image = response.image,在我保存所有帖子的集合后.... 我不知道,在PHP中它将在一个reuqest :)我是nodejs的新手,它只是为了好玩,而不是为了工作。我喜欢JavaScript。 :)

var multer  = require('multer');
var storage = multer.memoryStorage();
var upload = multer({ storage: storage });

var fs = require('fs');


fs.writeFile('public/uploads/image.jpg', req.file.buffer, 'ascii', 
 function  (err) {
  if (err) throw err;
    console.log('It\'s saved!');
 }
);

答案 1 :(得分:0)

var multer = require('multer'); 

var storage = multer.diskStorage({  
    destination: function (req, file, cb) { 
        cb(null, 'public/upload')
    },
    filename: function (req, file, cb) {
        cb(null, uuid.v4() + path.extname(file.originalname));
    }
})

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

This code helped me to achieve the goal. it will store the image with random name and the extension.