Node js在HTTP请求中接收文件

新手上路,请多包涵

我尝试创建一个服务器,它可以从 HTTP 请求接收文件。我使用 Postman 作为用户代理,并将文件添加到请求中。这是请求:

 POST /getfile HTTP/1.1
Host: localhost:3000
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Cache-Control: no-cache
Postman-Token: 9476dbcc-988d-c9bd-0f49-b5a3ceb95b85

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="test.xls"
Content-Type: application/vnd.ms-excel

------WebKitFormBoundary7MA4YWxkTrZu0gW--

但是当请求到达服务器时,我找不到其中的文件(我的意思是在请求中)。我试图从请求的主体部分接收它,但它返回了 > {} <。我试图弄清楚,我怎样才能引用文件名,但不幸的是我在请求标头中找不到文件名的任何引用……

谁能帮我看看,我该怎么办?

原文由 HowToTellAChild 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 420
2 个回答

作为我评论的后续,您可以使用 multer 模块实现您想要的东西: https://www.npmjs.com/package/multer

 const express = require('express');
const multer = require('multer');

const app = express();
const upload = multer();

app.post('/profile', upload.array(), function (req, res, next) {
  // req.body contains the text fields
});

原文由 Stavros Zavrakas 发布,翻译遵循 CC BY-SA 3.0 许可协议

var app = require('express')();
var multer = require('multer');
var upload = multer();

app.post('/your_path', upload.array(), function (req, res, next) {
  // req.files is array of uploaded files
  // req.body will contain the text fields, if there were any
});

原文由 Adrian Zhang 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题