zoukankan      html  css  js  c++  java
  • FORM的ENCTYPE="multipart/formdata" 时request.getParameter()值为null问题的解决

    解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法

    使用jspsmartupload表单中enctype="multipart/form-data"的意思,是设置 表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了 multipart/form-data,才能完整的传递文件数据

    但是设置了 enctype="multipart/form-data" ,除了file类型表单能获取到,其他value通过request.getParameter都得不到。这种情况下我们可以利用组件来解决该问题,例如用 jspsmartupload组件

       com.jspsmart.upload.SmartUpload su = new   com.jspsmart.upload.SmartUpload();
       su.initialize(pageContext);
       su.service(request, response);
       su.setTotalMaxFileSize(100000000);
       su.setAllowedFilesList("zip,rar");
       su.setDeniedFilesList("exe,bat,jsp,htm,html,,");
       su.upload();

       String Name = su.getRequest().getParameter("Name");
       String TYPE_ID = su.getRequest().getParameter("Type");

    通过 su.getRequest().getParameter("value");就可以了,su.upload()好象必须放在前面,测试中将su.upload()放在获取参数后面不成功。

    关于用jspSmartUpload控件上传文件并附带参数的吐血体验

    url:http://blog.csdn.net/thinker28754/archive/2007/05/26/1626844.aspx

     
    用于上传数据的表单:

    <form name="form1" method="post" action="servlet/Upfile" enctype="multipart/form-data">
    <p>请输入手机号</p>
    <p>
     <input type="text" name="phone" value="1234567890"/>
    </p>
    <p>图片上传(仅现于*.gif和*.jpg文件)</p>
    <p>
    <input type="file" name="file1"/>
    </p>


    <p>
    <input type="submit" name="submit" value="· 提交 ·"/>
    </p>
    </form>

    提交的后台的servlet

    SmartUpload su =new SmartUpload();
     
      su.initialize(this.getServletConfig(), request, response);
     
      String realPath = this.getServletContext().getRealPath("");
      String path=realPath+"/images";
     
        su.setAllowedFilesList("gif,jpg");
      su.upload();
      int count=su.save(path);
     
      msdnid=su.getRequest().getParameter("phone");//注意这是接收表单传过来的参数
      System.out.println("msdnid="+msdnid);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    特别说明:用于接收表单参数的语句一定要放在su.upload();语句的后面,也就是说要在文件上传后再接收,否则

    不管你怎么试接收到的结果总是"null".

    这是我在苦苦试了一天在晕到前的2分钟试出来的,真的不容易呀!!!!!

    在上述问题得到解决后,当所传的参数为汉字时则接收到的全是乱码,经过反复实验将表单页面的编码格式设成"gb2312"就解决了这个问题.

  • 相关阅读:
    iOS开发UI篇—UITabBarController简单介绍
    iOS开发UI篇—ios应用数据存储方式(归档)
    iOS开发UI篇—ios应用数据存储方式(偏好设置)
    iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
    iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
    iOS开发UI篇—控制器的View的创建
    WordPress显示备案号
    jQuery插件之Wookmark瀑布流
    Nodejs电影建站开发实例(下)
    Nodejs电影建站开发实例(上)
  • 原文地址:https://www.cnblogs.com/mooncher/p/2542115.html
Copyright © 2011-2022 走看看