繁体   English   中英

我的Servlet如何从multipart / form-data表单接收参数?

[英]How can my Servlet receive parameters from a multipart/form-data form?

我有一个包含这段代码的页面:

<form action="Servlet" enctype="multipart/form-data">
<input type="file" name="file">
<input type="text" name="text1">
<input type="text" name="text2">
</form>

当我使用request.getParameter("text1"); 在我的Servlet中,它显示为null。 如何让我的Servlet接收参数?

所有请求参数都嵌入到多部分数据中。 您必须使用Commons File Upload之类的东西来提取它们: http//commons.apache.org/fileupload/

Pleepleus是对的,commons-fileupload是一个不错的选择。
如果您在servlet 3.0+ environment中工作,您还可以使用其多部分支持来轻松​​完成多部分数据解析作业。 只需在servlet类上添加@MultipartConfig ,然后就可以通过调用request来接收文本数据。 getParameter() ,非常简单。

教程 - 使用Java Servlet技术上传文件

你需要像这样发送参数:

writer.append("--" + boundary).append(CRLF);
writer.append("Content-Disposition: form-data; name=\"" + urlParameterName + "\"" )
                .append(CRLF);
writer.append("Content-Type: text/plain; charset=" + charset).append(CRLF);
writer.append(CRLF);
writer.append(urlParameterValue).append(CRLF);
writer.flush();

在servlet端,处理Form元素:

items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
       item = (FileItem) iter.next();
       if (item.isFormField()) {
          name = item.getFieldName(); 
          value = item.getString();

   }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM