解决post提交表单(文件上传) request.getParameter 取值为空的问题

像碰到form表单中既有文件上传,又有接收的字段的时候,字段想用 request.getParameter 来得到,往往是null

<form action="FileUpload" method="post" enctype="multipart/form-data" name="form1"> 
   <input type="text" name="text">
   <input type="file" name="file"> 
    <input type="button" name="Submit" value="upload" οnclick="ok()"> 
</form>

 如上在public void doPost(HttpServletRequest request, HttpServletResponse response)  中调用request.getParameter("text")得到的是null 

怎么才能得到呢?有两种解决方案

1、用两个表单: (比较麻烦)
一个采用POST提交的文件上传的from ,一个采用GET提交的字段的from ,再将第二个form的值作为第一个的参数

 function ok()  { 
       var name = form2.name.value; 
       var title= form2.title.value; 
       form1.action="FileUpload?name="+name+"&title="+title; 
       form1.submit(); 
 }

2、commons-fileupload 判断fieldName,来区分是上传的文件还是字段

ServletFileUpload upload = new ServletFileUpload(factory);    
try {    
     List  items = upload.parseRequest(request);    
     for (Iterator i = items.iterator(); i.hasNext();) {    
                FileItem fileItem = (FileItem) i.next();    
                String field = fileItem.getFieldName();  //判断fieldname,  
                if(field.equals("kind")){    
                          kind = fileItem.getString();    
                          continue;    
                }else if(field.equals("id")){    
                         id = fileItem.getString();    
                         continue;    
                }else if(field.equals("topic")){    
                         topic = fileItem.getString();    
                         continue;    
                } 


3、 jsp SmartUpload  专门提供了 SmartUpload.getRequest().getParameter("text")
    具体介绍见我另外一篇博客    http://blog.csdn.net/jazywoo123/article/details/7900114



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值