MultipartHttpServletRequest获取文件内容但不获取表单ID

时间:2014-10-14 10:41:43

标签: java spring

我有一个html表单提交如下:

<form enctype="multipart/form-data" id="formToSubmit" action="/create_components" method="POST">
    <input type="file" name="component_1" id="component_1">

    Other inputs here...

在服务器端,我想获得所有输入(文件和文本输入)......并且表单是动态创建的,因此我事先并不知道ID的名称。

在服务器上,我需要内容和ID。

在服务器上我首先尝试循环参数,但这会跳过类型为file的输入并只返回文本的输入:

Enumeration<?> enums = request.getParameterNames();

while (enums.hasMoreElements()) {
  Object inputName = enums.nextElement();

  // Here I get all the input that are not files

}

然后我试着这样:

 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

 Set set = multipartRequest.getFileMap().entrySet(); 
 Iterator i = set.iterator(); 

 while(i.hasNext()) { 
     Map.Entry me = (Map.Entry)i.next(); 
     String fileName = (String)me.getKey();
     MultipartFile multipartFile = (MultipartFile)me.getValue();
     byte[] bytes = multipartFile.getBytes();

 } 

通过这种方式我实际上得到了文件,但我不知道如何获取他们的ID。

我需要两个:文件内容和ID(在本例中为“component_1”)。我怎样才能做到这一点?有没有办法可以更改最后一个代码以获取ID?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取文件名称:

String valueOfNameAttribute = ((MultipartFile)me.getValue()).getName()

不是你需要的吗?