`
llyzq
  • 浏览: 585440 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FORM的ENCTYPE="multipart/form-data" 时request.getParameter()值为null问题

    博客分类:
  • J2EE
 
阅读更多

转自:http://www.cnblogs.com/mooncher/archive/2012/06/08/2542115.html

 

解决当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"就解决了这个问题.

分享到:
评论

相关推荐

    解决上传图片时request.getParameter是空值的java类

    encType="multipart/form-data" 根据上传不同,主要分两步,可以有效的解决request.getParameter(String s)是null值

    java上传文件资料

    另一个需要注意的问题是,当涉及文件上传时,`&lt;form&gt;`标签必须包含`enctype="multipart/form-data"`属性。这是因为文件上传的数据格式是multipart/form-data,而不是默认的application/x-www-form-urlencoded。后者...

    崔希凡JavaWeb笔记day22-day24

    - **request.getParameter("xxx")**: 在表单的enctype设置为`multipart/form-data`时,此方法将不再有效。此时它总是返回`null`。 - **ServletInputStream request.getInputStream()**: 包含整个请求的数据,包括...

    struts 1.2 文件上传与下载.txt

    &lt;form action="fileAction" method="post" enctype="multipart/form-data"&gt; &lt;input type="text" name="name" placeholder="Name"/&gt; &lt;input type="text" name="user" placeholder="User"/&gt; &lt;input type="file" ...

    Java web文件上传显示下载.docx

    - 表单的`enctype`属性必须设置为`multipart/form-data`才能支持文件上传。 - 使用`&lt;c:forEach&gt;`标签遍历上传的文件列表,并提供下载链接。 ##### 2. Servlet处理逻辑 Servlet是Java Web应用的核心部分,负责...

    Javaweb文件上传

    3. **指定编码类型**:为了让表单能够正确地发送文件数据,需要将`enctype`属性设置为`multipart/form-data`。这样服务器才能正确解析接收到的文件数据。 ```html &lt;form action="" method="post" enctype=...

    使用servlet进行文件上传

    &lt;form action="uploadServlet" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file" /&gt; &lt;input type="submit" value="上传" /&gt; &lt;/form&gt; ``` 这里的`enctype="multipart/form-data"`...

    jsp 简单实现上传下载功能

    &lt;form action="upload.jsp" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="fileToUpload" id="fileToUpload"&gt; &lt;input type="submit" value="上传文件" name="submit"&gt; &lt;/form&gt; ``` 这里...

    FileUploadAndDownLoad

    在JSP中,我们通常使用`&lt;form&gt;`元素来创建一个文件上传表单,设置`enctype="multipart/form-data"`,这样浏览器会知道需要处理二进制文件。例如: ```html &lt;form action="uploadServlet" method="post" enctype=...

    java上传文件实例

    flag=1" method="post" enctype="multipart/form-data" name="form1"&gt; &lt;input type="file" name="file"&gt; &lt;input type="hidden" name="file"&gt; &lt;input type="submit" name="Submit" value="上传"&gt; &lt;/form&gt;&lt;/td&gt; &lt;/tr&gt; ...

    使用JSP实现文件的上传和下载

    表单的`enctype`属性必须设置为`multipart/form-data`,以支持文件上传。 ```html &lt;form action="uploadServlet" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file" /&gt; &lt;input type=...

    Serlvet+jsp实现图片上传

    表单的`enctype`属性需要设置为`multipart/form-data`,以便能够传输二进制数据,如图片。 ```html &lt;form action="uploadServlet" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="image...

    JSP在数据库中存取图片

    &lt;form method="POST" action="uploadFile2.jsp" name="PW" enctype="multipart/form-data"&gt; &lt;table cellspacing="0" cellpadding="3" border="1" width="474"&gt; &lt;!-- 输入字段 --&gt; &lt;/table&gt; &lt;/form&gt; &lt;/p&gt; &lt;/BODY&gt; &lt;/...

    struts下上传图片到数据库并显示到页面实例

    &lt;form action="uploadImage.do" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="image" /&gt; &lt;input type="submit" value="上传" /&gt; &lt;/form&gt; ``` 对于显示图片,可以使用一个链接指向`...

    jspSmartUpload上传下载全攻略

    &lt;form action="uploadServlet" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="userFile" /&gt; &lt;input type="submit" value="上传" /&gt; &lt;/form&gt; ``` 2. 编写Servlet处理文件上传:在Servlet...

    JAVA基础

    &lt;form action="upload.jsp" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file"&gt; &lt;input type="submit" value="Upload"&gt; &lt;/form&gt; ``` #### JSP上传逻辑 在后端,JSP页面处理上传请求...

    commons-fileupload Servlet 上传/下载文件 示例代码

    &lt;form action="/upload" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="file"&gt; &lt;input type="submit" value="Upload"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; ``` 这个表单提交到"/upload",对应...

    web文件上传原理讲解与代码

    2. **MIME类型**:表单的`enctype`属性必须设置为`multipart/form-data`,以支持文件上传。 3. **数据格式**:数据会被组织成一系列的键值对,并使用特定的边界(boundary)字符串分割不同部分的数据。每个部分...

    用jspsmart.jar的上传下载工具

    &lt;form action="uploadServlet" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="fileToUpload" id="fileToUpload"&gt; &lt;input type="submit" value="Upload File" name="submit"&gt; &lt;/form&gt; ``...

Global site tag (gtag.js) - Google Analytics