使用来自文本字段的 Express JS 值处理多部分表单数据在 req.body 中为空
Handling multipart form data with express JS-values from text field are empty in req.body
我有一个项目,我在其中使用基本注册页面供用户输入他们的详细信息。
我在后端使用 express JS
在此,我也请他们上传一张图片。但是对于要上传的图片,我需要将表格的enctype
设为multipart/form-data
。图像已上传,但问题是记录了其他数据的none。
这是html:
<form action="/create" method="POST" class="profile" enctype="multipart/form-data">
<input type="file" name="profile_image" class="img_upload" /><br><br><br>
<div class="name_age" >
<input type="text" name="name" class="name" placeholder="Full name">
<b class="age"> Age </b>
<input type="date" name="age" class="age"/>
</div>
<input type="submit" name="submit" value="Update Profile" class="button"/>
</form>
这是处理它的 expressJS 代码:
app.post('/create',(req,res)=>{
var d = req.body
console.log(d)
upload(req,res,function(err){ //this is a multer function to store the image
if(err)
res.end(err)
else{
res.end('success')
}
})
})
console.log(d)
returns 一个空对象。没有 multipart/form-data
图像不会上传,但会记录其余数据。
如何解决这个问题?
实际上我几个月前在我的项目中也尝试过这个,并且在 busboy 和 multer 中遇到了类似的问题。你可以在按钮上有一个 onclick 事件,你可以在其中设置 3.4 秒的 setTimeout(上传图像和发送响应通常需要的时间)并在 ajax 中发送正文中的文本字段请求您的 url /create。或者只是放弃使用 <form>
标签的 post 请求,只发送图像以及 ajax 请求中的文本字段。希望对你有帮助
我有一个项目,我在其中使用基本注册页面供用户输入他们的详细信息。 我在后端使用 express JS
在此,我也请他们上传一张图片。但是对于要上传的图片,我需要将表格的enctype
设为multipart/form-data
。图像已上传,但问题是记录了其他数据的none。
这是html:
<form action="/create" method="POST" class="profile" enctype="multipart/form-data">
<input type="file" name="profile_image" class="img_upload" /><br><br><br>
<div class="name_age" >
<input type="text" name="name" class="name" placeholder="Full name">
<b class="age"> Age </b>
<input type="date" name="age" class="age"/>
</div>
<input type="submit" name="submit" value="Update Profile" class="button"/>
</form>
这是处理它的 expressJS 代码:
app.post('/create',(req,res)=>{
var d = req.body
console.log(d)
upload(req,res,function(err){ //this is a multer function to store the image
if(err)
res.end(err)
else{
res.end('success')
}
})
})
console.log(d)
returns 一个空对象。没有 multipart/form-data
图像不会上传,但会记录其余数据。
如何解决这个问题?
实际上我几个月前在我的项目中也尝试过这个,并且在 busboy 和 multer 中遇到了类似的问题。你可以在按钮上有一个 onclick 事件,你可以在其中设置 3.4 秒的 setTimeout(上传图像和发送响应通常需要的时间)并在 ajax 中发送正文中的文本字段请求您的 url /create。或者只是放弃使用 <form>
标签的 post 请求,只发送图像以及 ajax 请求中的文本字段。希望对你有帮助