提问者:小点点

获取multer在NodeJS中发送的文件?


这是我的upload.js代码:

var multer = require('multer');
var express = require('express');
const router = express.Router();

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

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

router.post('/', upload.single('file'), (req, res, next) => {
  const file = req.file;
  if (!file) {
    const error = new Error('Please upload a file');
    error.httpStatusCode = 400;
    return next(error);
  }
  res.send(file);
});

module.exports = router;

有人能说出Router.Get是什么吗? 这样我就可以在响应中得到一个图像。


共2个答案

匿名用户

您可以简单地静态地为uploads-文件夹提供服务。 通过这样做,您不需要实际的get-处理程序,而是定义express.statice-中间件

app.use(express.static('uploads'));

现在,客户机只需执行对http://yourserver/-的请求,文件将自动提供。

匿名用户

EOL的答案是好的,但是如果您需要维护访问权限,控制器可能看起来是这样的:

res.writeHead(200,{'content-type':'image/jpg'});
fs.createReadStream('./image/demo.jpg').pipe(res);