首页 > 解决方案 > 使用 XmlHttpRequest 发送文件并在 express/multer 中接收

问题描述

我有以下代码:

客户端:

var fileInput = document.getElementById('img-edit');
var file = fileInput.files[0];
console.log(file)
var formElement = document.getElementById("edit-team-form")
var formData = new FormData(formElement)
formData.append('sphoto', file);
var request = new XMLHttpRequest();
request.open("POST", "http://localhost:3030/edit-team?id=57");
request.send(formData);

服务器端:

app.post("/edit-team?:id", urlencodedParser , upload.single("sphoto"), (req, res) => {
 var editedTeam = req.body
 console.log(req.files)
 console.log(editedTeam)
})

我想做的是发送一个照片文件并在我的快递应用程序中接收它。

当我做一个console.logvar file得到的信息。但我也收到了一个500 (Internal Server Error)帖子请求。

此外,在我的应用程序控制台中,我收到以下错误:

MulterError: Unexpected field
at wrappedFileFilter (C:\Users\juanc\Desktop\Crud-intento2\node_modules\multer\index.js:40:19)
at Busboy.<anonymous> (C:\Users\juanc\Desktop\Crud-intento2\node_modules\multer\lib\make-middleware.js:114:7)
at Busboy.emit (events.js:315:20)
at Busboy.emit (C:\Users\juanc\DesktopCrud-intento2\node_modules\busboy\lib\main.js:38:33)
at PartStream.<anonymous> (C:\Users\juanc\Desktop\Crud-intento2\node_modules\busboy\lib\types\multipart.js:213:13)
at PartStream.emit (events.js:315:20)
at HeaderParser.<anonymous> (C:\Users\juanc\Desktop\Crud-intento2\node_modules\dicer\lib\Dicer.js:51:16)
at HeaderParser.emit (events.js:315:20)
at HeaderParser._finish (C:\Users\juanc\Desktop\Crud-intento2\node_modules\dicer\lib\HeaderParser.js:68:8)
at SBMH.<anonymous> (C:\Users\juanc\Desktop\Crud-intento2\node_modules\dicer\lib\HeaderParser.js:40:12)

编辑:

const multer = require ("multer")
const upload = multer({dest: './uploads/imagenes'})
const bodyParser = require("body-parser")
var urlencodedParser = bodyParser.urlencoded({ extended: false })

在我存储文件的文件夹中,创建了一些文件

标签: javascriptfileexpressxmlhttprequestmulter

解决方案


推荐阅读