2013-03-17 51 views
0

使用多部分文件上载表单。在Servlet 3.0中使用Java。似乎与多部分,提交按钮的值不传递给服务器?使用多部分/表单数据提交多个按键值

例如

<form method="POST" enctype="multipart/form-data" action="/servlet"> 
    <input type="hidden" name="mode" value="image"> 
    <input type="hidden" name="id"  value="123"> 
    <input type="file" name="file" id="file"> 
    <input type="submit" name="action" value="Upload"> 
    <input type="submit" name="action" value="Delete"> 
</form> 

在常规文章中,您只需检查“action”参数的值即可。你如何以多部分形式访问它?我试图在请求中检查这些部分,但它不在那里。

例如

Collection<Part> parts = request.getParts(); 
System.out.println("parts: "+parts.size()); 
for(Part part : parts){ 
    System.out.println(part.getName()); 
} 

输出:

parts: 3 
mode 
id 
file 

如...

String mode = request.getParameter("mode"); //reads "image" 
    String id = request.getParameter("id"); //read "123" 
    String action = request.getParameter("action"); //reads null 

你如何解决这个问题呢?

回答

2

有一个隐藏字段声明,并设置其值为基础上提交按钮点击,您提交之前,使用Javascript

<input type="hidden" name="submitType" value=""> 
在你的程序
1

首次进口多jar文件,然后
尝试使用multipartrequest类从您的表单访问多部分数据 -

MultipartRequest mpr=new MultipartRequest(request,"C:"); 
String ad=mpr.getParameter("made");     // read "image" 
String ad=mpr.getParameter("id");     // read "123" 
String ad=mpr.getParameter("action"); // if u submit from from upload then it read "upload" or submit from delete then it read "delete" String . 
+0

对不起,但我不确定你的意思?我编辑了 – PrecisionPete 2013-03-25 17:59:22

+0

。再次检查:) – 2013-03-26 08:57:05

+0

为我工作!作为其他人的提示:您可以从此站点下载多部分内容:http://www.servlets.com/cos/ – Sorcerer 2013-05-04 23:28:28