通过Multer上传Node.js中的文件

时间:2017-06-02 13:05:17

标签: javascript node.js

我有一个Node.js网络应用程序。在应用程序中我使用Express。我需要让用户上传图片。为此,我在网上查看了一些示例,但似乎都没有满足我的需求。具体来说,我想获取上传的文件,将其保存到本地磁盘,并对其进行一些操作。现在,我有以下内容:

const app = this;
const multer  = require('multer')
const upload = multer({ dest: 'uploads/' })

app.post('/picture/upload', upload.single('myPicture'), function(req, res) {
  console.log('uploaded');
  var picture = req.file;
  console.log(picture);
  res.send({ id: 1, fileName: 'info', originalName: 'name' });
});

当我从网页上传文件时,我在控制台窗口中看到以下内容:

uploaded
undefined

当我查看Fiddler时,我可以看到图像正在传递给服务器。它就像我没有"访问"它恰当。如何在Node中的服务器端获取上传文件?

更新: 应响应者的要求:

req.headers:

{ host: 'localhost:1337',
  connection: 'keep-alive',
  'content-length': '395665',
  accept: 'application/json, text/plain, */*',
  origin: 'http://localhost:1337',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
  'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary[someRandomCharacters]',
  referer: 'http://localhost:1337/picture',
  'accept-encoding': 'gzip, deflate, sdch, br',
  'accept-language': 'en-US,en;q=0.8',
  cookie: '' 
}

req.body:

{ myPicture: 'data:image/png;base64,[LONG STRING OF ALPHANUMERIC CHARACTERS]' }

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用此req.files访问文件类型输入。 试试console.log(req.files) req.files将返回所有上传的文件。