Javascript 在多部分文件上载表单请求中获取请求中的参数值
我有一个JSP格式的表单Javascript 在多部分文件上载表单请求中获取请求中的参数值,javascript,java,jsp,servlets,Javascript,Java,Jsp,Servlets,我有一个JSP格式的表单 <form action="/view/tool/Process" method="post" enctype="multipart/form-data" target="_blank"> <p class="bottomPadded"> </p>
<form action="/view/tool/Process" method="post"
enctype="multipart/form-data" target="_blank">
<p class="bottomPadded"> </p>
<input type="file" name="file" />
<input id="fileprogramtype" type="text" name="programtype" style="display: none;"/>
<p class="bottomPadded"> </p>
<p class="generalContent bottomPadded"><input class="imageBtn" type="image" name="image" src="/images/upload.png" /></p>
</form>
它甚至没有进入环路
有人能告诉我在多部分表单请求的情况下如何获取其他参数的值吗
你知道我怎样才能在中获得
的值吗
进程上载
是的,你可以过得去
request.getParameter(“programtype”)代码>
您确定您得到的是null
,因为根据
以字符串形式返回请求参数的值,如果
参数不存在。请求参数是额外的信息
随请求一起发送。对于HTTP servlet,参数包含在
查询字符串或已发布的表单数据
如果不手动设置值,则可以获得空值,因为它是一个隐藏字段,但不会获得空值
在使用enctype=“multipart/form data”
时,在我的开发环境中验证类似的代码后回答相同的问题使用request.getParameter(“programtype”)
不能直接获取参数
在这种情况下,表单字段不能作为请求的参数使用,它们包含在流中,所以您需要从流中获取它们。一种可能的方法是使用。以下是官方文档中的示例代码(请参阅“处理上传的项目”一节)
您是否尝试使用多部分表单数据?因为它不适合任何人that@tima是的,我只尝试了多部分表单。请检查这一点。这很奇怪,即使我使用注释配置servlet,我也得到了null
。是的,我得到了null。。我得到了答案。。
<servlet>
<servlet-name>ProcessUpload</servlet-name>
<servlet-class>view.tool.servlet.ProcessUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ProcessUpload</servlet-name>
<url-pattern>/view/tool/Process</url-pattern>
</servlet-mapping>
Collection<Part> parts = request.getParts();
for(Part p : parts) {
logger.info("Parts ::: "+p.getName());
if ("programtype".equals(p.getName()))
{
InputStream inputStream = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
programtype = br.readLine();
logger.info("Here is Program Type ::"+programtype);
}
}
// Process the uploaded items
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = iter.next();
if (item.isFormField()) {
processFormField(item);
} else {
processUploadedFile(item);
}
}
// Process a regular form field if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
... }