废话不多说,直接奔主题
大家都知道,当form表单中既要提交文本,又要上传图片时,必需在form表单中加上属性enctype ="multipart/form-data",
但一加上这个属性,用request.getParameter(“name的值”)是无法获取的,怎办呢?
只能用fileupload的提供的方法了,我的例子如下:
我的form表单:
<form action="<%=request.getContextPath()%>/servlet/addproductServlet"method="post" enctype = "multipart/form-data">
产品小图片:
<input type="file"name="fileupS"/><br/>
产品大图片:
<input type="file"name="fileupB"/><br/>
产品所属类别:在这里插入代码片
<select name="sort">
<optionvalue="">--选择产品类别--</option>
<optionvalue="a">a</option>
<optionvalue="b">b</option>
<optionvalue="c">c</option>
<optionvalue="d">d</option>
</select><br/>
产品名称:
<input type="text" name="productName"/><br>
产品描述:
<textarea rows="3" cols="40" name="productDes"></textarea><br>
<input type="submit" value="提交"/><br/>
</form>
获取其中的值并上传文件如下:
String productName=null,productDes=null,sort=null,fileupS=null,fileupB=null;
DiskFileItemFactory dff = new DiskFileItemFactory();
ServletFileUpload fu = new ServletFileUpload(dff);
{
List li =fu.parseRequest(request);
Iterator iter = li.iterator();
while(iter.hasNext()){
FileItem item = (FileItem)iter.next();
if(item.isFormField()){ //此处是判断非文件域,即不是<inputtype="file"/>的标签
String name=item.getFieldName(); //获取form表单中name的id
if("productName".equals(name))
productName=item.getString("utf-8"); //item是指定id的value值,此处用 item.getString("utf-8")是把item用utf-8解析,根据你的需要可以用其他的,如:gbk;
elseif("productDes".equals(name))
productDes=item.getString("utf-8");