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 complex
We 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()获取不到值的方法”这一主题时,我们首先需要理解为什么在特定情况下,传统的`request.getParameter()`方法无法正常工作,以及如何通过...
综上所述,当你遇到`ENCTYPE="multipart/form-data"`的表单提交时,不要期望使用`request.getParameter()`直接获取文本字段的值,而是应该采用上述的特定方法进行处理。确保选择合适的方法取决于你的项目环境和需求...
encType="multipart/form-data" 根据上传不同,主要分两步,可以有效的解决request.getParameter(String s)是null值
另一个需要注意的问题是,当涉及文件上传时,`<form>`标签必须包含`enctype="multipart/form-data"`属性。这是因为文件上传的数据格式是multipart/form-data,而不是默认的application/x-www-form-urlencoded。后者...
然而,在实际操作中,可能会遇到一个问题:当表单(`FORM`)中包含文件上传字段时,无法通过`request.getParameter`正常获取表单中的其他非文件数据。这是因为文件上传需要`enctype`属性设置为`multipart/form-data`...
- **request.getParameter("xxx")**: 在表单的enctype设置为`multipart/form-data`时,此方法将不再有效。此时它总是返回`null`。 - **ServletInputStream request.getInputStream()**: 包含整个请求的数据,包括...
首先,我们需要创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。 三、文件上传的JSP文件要求和例子 ...
<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. ...
<form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" /> <input type="submit" value="上传" /> </form> ``` 2. **Servlet或JSP处理**: 当用户提交...
1. **表单设置**:要实现文件上传,首先需要在JSP页面中创建一个`<form>`标签,设置`enctype="multipart/form-data"`属性,以允许传输二进制数据,如文件内容。 ```html <form action="uploadServlet" method="post...
2. **参数获取**:当表单同时包含文件和其他表单字段时,应使用Smartupload提供的request方法来获取所有表单参数,而非直接使用`request.getParameter()`。 3. **异常处理**:在实际开发中,应当添加适当的异常处理...
<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=...
- 文件上传时的乱码(enctype="multipart/form-data")通常需要自定义解析器来处理,因为Servlet API本身不支持设置请求编码。可以使用第三方库如Apache Commons FileUpload或Spring MVC的MultipartFile来处理文件...
此时,服务器端无法再使用`request.getParameter()`方法来获取信息,因为请求头的编码方式已经改为二进制形式。 #### 四、服务器端处理 服务器端接收并处理文件上传的过程较为复杂,尤其是如何解析请求体中的文件...
<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" ...
<form action="upload.do" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" /> <input type="submit" value="上传" /> </form> ``` 在这个表单中,`name="uploadFile"`是...
<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">下载...
- 表单的`enctype`属性必须设置为`multipart/form-data`才能支持文件上传。 - 使用`<c:forEach>`标签遍历上传的文件列表,并提供下载链接。 ##### 2. Servlet处理逻辑 Servlet是Java Web应用的核心部分,负责...
2. **增加ENCTYPE属性**:为了能够正确地上传文件,表单还需要包含`ENCTYPE="multipart/form-data"`属性。这是因为文件数据不同于普通的文本数据,需要使用特殊的编码格式来传输。此属性告诉浏览器如何编码表单中的...