node.js如何接收<form enctype =multipart/form-data >传入的参数
<form enctype ="multipart/form-data" action="http://192.168.0.10:3000/addSale" method="post">
<label><b>商品名称 :</b></label>
<input type="text" id="salename" name="salename" maxlength="20" />
<label><b>商品价格 :</b></label>
<input type="text" id="name" name="price" maxlength="20" />(¥)
<label><b>商品详情:</b></label>
<textarea id="name" name="desc" class="textarea"></textarea>
<label><b>起拍时间 :</b></label>
<input type="text" id="name" name="start" maxlength="20" id="datetimepicker_start" />
<label><b>结束时间 :</b></label>
<input type="text" id="name" name="end" maxlength="20" id="datetimepicker_end" />
<label><b>图片 :</b></label>
<input type="file" id="name" name="img" value=""/>(jpg/png小于2M 300*300)
<input class="button" type="submit" name="btnSubmit" value="添加" />
</form>
为什么我用req.body.salename接受不到参数
去掉这个 enctype ="multipart/form-data" 就可以访问了
post方式(enctype为multipart/form-data,多用于文件上传)
表单数据都保存在http的正文部分,各个表单项之间用boundary隔开。格式类似于下面这样:用request.getParameter是取不到数据的,这时需要通过request.getInputStream来取数据,不过取到的是个InputStream,所以无法直接获取指定的表单项(需要自己对取到的流进行解析,才能得到表单项以及上传的文件内容等信息)。这种需求属于比较共通的功能,所以有很多开源的组件可以直接利用。比如:apache的fileupload组件,smartupload等。通过这些开源的upload组件提供的API,就可以直接从request中取得指定的表单项了。