如何在Controller获取以multipart/form-data方式提交表单的参数值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Controller获取以multipart/form-data方式提交表单的参数值相关的知识,希望对你有一定的参考价值。
form里面的method是不是a.com,如果是的话,那说明是正确的。你可以把method修改为a.com?w=a。这样就达到你的要求了。 以上仅供参考! 参考技术A @RequestMapping(value = "/login", method = RequestMethod.<a href="https://www.baidu.com/s?wd=GET&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhR3mywBrjNbuAmYnjcL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHDsrH6YPWbvP1bknWcdn1R1rf" target="_blank" class="baidu-highlight">GET</a>)public ModelAndView myMethod(HttpServletRequest request,
HttpServletResponse response,
//@RequestParam("username")String username, @RequestParam("password")String password
String username,String password,//如果和前台的一样一样简写成这样
ModelMap modelMap) throws Exception
username = new String(username.<a href="https://www.baidu.com/s?wd=get&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLPhR3mywBrjNbuAmYnjcL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHDsrH6YPWbvP1bknWcdn1R1rf" target="_blank" class="baidu-highlight">get</a>Bytes("iso8859-1"),"UTF-8");//编码问题 (服务器一帮都是iso的)
System.out.println(username+":"+password);
modelMap.put("loginUser", username);
modelMap.put("msg", "I'm in session");
return new ModelAndView("/view/hello", modelMap);
这里是一个方法,springMVC中参数可以直接现在方法的参数列表中,如果是对象属性的话也可以直接使用对象例如(User user,...)
刚才的方法对应的前台:
<form action="login">
username:
<input name="username" />
<br>
password:
<input name="password" type="password" />
<br>
<input type="submit" value="登入" />
</form>本回答被提问者采纳
Multipart/form-data in 表示时如何获取其他类型字段
【中文标题】Multipart/form-data in 表示时如何获取其他类型字段【英文标题】:How to get other type fields when Multipart/form-data in expresses 【发布时间】:2015-10-12 02:07:04 【问题描述】:我正在创建一个表单来上传图片,同时该表单包含其他字段。问题是当我尝试使用req.body
获取表单数据时,会有一个未定义的。你知道为什么吗?使用enctype="multipart/form-data"
时无法获取其他输入?
【问题讨论】:
请检查您是否忘记使用github.com/expressjs/body-parser 我已经在用了 如果你以正确的方式使用 body-parser,body 是未定义的,这很奇怪。在这里寻找解决方案 - ***.com/questions/5149545/… 你使用multiparty
成功了吗?
【参考方案1】:
您可以按如下方式使用multiparty 模块
var multiparty = require('multiparty');
exports.parseForm = function (req, res)
var form = new multiparty.Form();
form.parse(req, function(err, fields, files)
//here you can read the appropriate fields/files
);
;
还要确保您在 html 中正确设置了 enctype
<form role='form' method='post' enctype="multipart/form-data">
当我使用它时,它是通过 HTML 表单提交多个文本字段和一个图像文件。然后在我的parseForm
函数中,我会将它们捆绑到一个对象中以保存到 mongo,如下所示
form.parse(req, function(err, fields, files)
var temp = fields;
temp.image = ;
temp.image.data = fs.readFileSync(files.image[0].path);
temp.image.contentType = 'image';
var product = new Product(temp);
product.save();
res.redirect('/');
);
【讨论】:
如何访问form.parse里面的流?以上是关于如何在Controller获取以multipart/form-data方式提交表单的参数值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Security 中获取 permitAll 以不在 @Controller 对象中抛出 AuthenticationCredentialsNotFoundException?
使用 multipart/form-data 时如何从请求中获取字符串参数? [复制]