09-10
19

关于使用jspSmartUpload组件后request.getParameter()无法读出表单属

关于使用jspSmartUpload组件后request.getParameter()无法读出表单属性的问题


使用jspSmartUpload组件最大的问题就是,无法用request.getParameter()无法读出表单属性的值。原因是在form表单里加了ENCTYPE="multipart/form-data"这么一句话,那么提交过去的数据可能就变成一种二进制的,jsp页面无法读取的格式了。
在网上找了很多答案,发现解决方法很多,但是都不够简捷。有的推荐的方法甚至是不成功的(例如:mySmartUpload.getRequest().getParameter("user")等等)。
后来自己调试了一下,发现用javascript解决最简单了。例如:
其中隐藏表单域,uploadfilename要获得文件名,点击SUBMIT,上传按钮后调用doAction()方法,然后在javascript里面定义action的提交地址,返回后提交表单。

<FORM name="form1" METHOD="POST" ACTION="jsp/upload.jsp" ENCTYPE="multipart/form-data">
   <INPUT TYPE=FILE NAME="FILE1" SIZE="50"><BR>
   <input TYPE="hidden" NAME="uploadfilename" value="">
   <INPUT TYPE="SUBMIT" VALUE="上传" onclick = "return doAction()">
  </FORM>
-----------------------------------------------------------------
<script type="text/javascript">
<!--  
  function doAction()
  {
   document.form1.uploadfilename.value =getFileName(form1.FILE1.value);
   document.form1.action="jsp/upload.jsp?uploadfilename="+form1.uploadfilename.value;
   return true;
  }

  function getFileName(str)
  {
   var n = str.lastIndexOf("\\");
   if (n < 0)
     n = str.lastIndexOf("\/");
   if (n>=0)
   {
      str = str.substring(n+1);
   }
    return str;
  }
-->
</script>

这样,我们在upload.jsp页面里就可以使用request.getParameter("uploadfilename");读取文件名了。
呵呵,这个方法应该是最简单了,欢迎拍砖指正。


[本日志由 blurxx 于 2009-10-19 01:12 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: SmartUpload 上传
相关日志:
评论: 0 | 引用: 0 | 查看次数: 288
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭