`
mintelong
  • 浏览: 396157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • j2ee
阅读更多
I cannot read the submitter using request.getParameter("submitter") (it returns null). ]

Situation:

javax.servlet.HttpServletRequest.getParameter(String) returns null when the ContentType is multipart/form-data

Solutions:

Solution A:

1. download http://www.servlets.com/cos/index.html
2. invoke getParameters() on com.oreilly.servlet.MultipartRequest

Solution B:

1. download http://jakarta.apache.org/commons/sandbox/fileupload/
2. invoke readHeaders() in
org.apache.commons.fileupload.MultipartStream

Solution C:

1. download http://users.boone.net/wbrameld/multipartformdata/
2. invoke getParameter on
com.bigfoot.bugar.servlet.http.MultipartFormData

Solution D:

Use Struts. Struts 1.1 handles this automatically.

说是不详细,接着往下看,另一种解决方法
> Solution B:> 1. download > http://jakarta.apache.org/commons/sandbox/fileupload/> 2. invoke readHeaders() in > org.apache.commons.fileupload.MultipartStreamThe Solution B as given by my dear friend is a bit hectic and a bit complexWe can try the following solution which I found much simpler (at least in usage).1. Download one of the versions of UploadFile from http://jakarta.apache.org/commons/fileupload/2. Invoke parseRequest(request) on org.apache.commons.fileupload.FileUploadBase which returns list of org.apache.commons.fileupload.FileItem objects. 3. Invoke isFormField() on each of the FileItem objects. This determines whether the file item is a form paramater or stream of uploaded file. 4. Invoke getFieldName() to get parameter name and getString() to get parameter value on FileItem if it's a form parameter. Invoke write(java.io.File) on FileItem to save the uploaded file stream to a file if the FileItem is not a form parameter.
按照上面的步骤来,果然一切都ok,GOOGLE真不错,主要是getFieldName和getString
分享到:
评论

相关推荐

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

    在探讨“解决当FORM的ENCTYPE='multipart/form-data'时request.getParameter()获取不到值的方法”这一主题时,我们首先需要理解为什么在特定情况下,传统的`request.getParameter()`方法无法正常工作,以及如何通过...

    java 页面上有ENCTYPE="multipart/form-data" 时action方法或者控制层用request.getParameter()获取不到值的方法 ?

    综上所述,当你遇到`ENCTYPE="multipart/form-data"`的表单提交时,不要期望使用`request.getParameter()`直接获取文本字段的值,而是应该采用上述的特定方法进行处理。确保选择合适的方法取决于你的项目环境和需求...

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

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

    java上传文件资料

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

    [JSP应用]使用jsp上传组件jspsmartupload时如何获取FORM中其它的值.doc

    然而,在实际操作中,可能会遇到一个问题:当表单(`FORM`)中包含文件上传字段时,无法通过`request.getParameter`正常获取表单中的其他非文件数据。这是因为文件上传需要`enctype`属性设置为`multipart/form-data`...

    崔希凡JavaWeb笔记day22-day24

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

    基于JSP+Servlet+JavaBean的图片或文件上传

    首先,我们需要创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。 三、文件上传的JSP文件要求和例子 ...

    servlet 文件上传下载

    <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload File" name="submit"> </form> ``` 2. ...

    jsp页面实现文件上传下载

    <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" /> <input type="submit" value="上传" /> </form> ``` 2. **Servlet或JSP处理**: 当用户提交...

    JSP 上传和下载

    1. **表单设置**:要实现文件上传,首先需要在JSP页面中创建一个`<form>`标签,设置`enctype="multipart/form-data"`属性,以允许传输二进制数据,如文件内容。 ```html <form action="uploadServlet" method="post...

    smartupload文件上传功能

    2. **参数获取**:当表单同时包含文件和其他表单字段时,应使用Smartupload提供的request方法来获取所有表单参数,而非直接使用`request.getParameter()`。 3. **异常处理**:在实际开发中,应当添加适当的异常处理...

    JspSmartUpload上传文件到文件夹重名问题解决方法

    <form action="upd2.jsp" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="file1"> <input type="text" name="title"> <input type="text" name="content"> <input type=...

    JSP中文乱码解决集锦

    - 文件上传时的乱码(enctype="multipart/form-data")通常需要自定义解析器来处理,因为Servlet API本身不支持设置请求编码。可以使用第三方库如Apache Commons FileUpload或Spring MVC的MultipartFile来处理文件...

    Javaweb文件上传

    此时,服务器端无法再使用`request.getParameter()`方法来获取信息,因为请求头的编码方式已经改为二进制形式。 #### 四、服务器端处理 服务器端接收并处理文件上传的过程较为复杂,尤其是如何解析请求体中的文件...

    struts 1.2 文件上传与下载.txt

    <form action="fileAction" method="post" enctype="multipart/form-data"> <input type="text" name="name" placeholder="Name"/> <input type="text" name="user" placeholder="User"/> <input type="file" ...

    jsp+struts文件上传

    <form action="upload.do" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" /> <input type="submit" value="上传" /> </form> ``` 在这个表单中,`name="uploadFile"`是...

    spring 集合 smartupload 简单实现上传下载应用

    <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <button type="submit">上传文件</button> </form> <a href="/download?filename=example.txt">下载...

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

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

    jsp通过jspSmartUpload上传和下载文件

    2. **增加ENCTYPE属性**:为了能够正确地上传文件,表单还需要包含`ENCTYPE="multipart/form-data"`属性。这是因为文件数据不同于普通的文本数据,需要使用特殊的编码格式来传输。此属性告诉浏览器如何编码表单中的...

Global site tag (gtag.js) - Google Analytics