解决form表单同时提交文件类型(图片,文件等)和数据类型(文本框等等)应该如何处理

10 篇文章 0 订阅

废话不多说,直接奔主题

大家都知道,当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");
           

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值