如何在grails中上传多个文件

时间:2010-12-10 07:41:18

标签: grails file-upload

我有一个包含多个文件上传的表单,如此

<g:form name="legalActionForm" controller="legalAction" action="save" enctype="multipart/form-data">
<input type='file' name='documentFile'/> <input type='text' name='documentDate'/>
<input type='file' name='documentFile'/> <input type='text' name='documentDate'/>
<input type='file' name='documentFile'/> <input type='text' name='documentDate'/>
<input type='file' name='documentFile'/> <input type='text' name='documentDate'/>
<input type='file' name='documentFile'/> <input type='text' name='documentDate'/>
<input type='submit' value='update'/>
</g:form>

如果需要,用户可以添加更多... 如何使用迭代器获取每个文件?

如果我只使用一个文件request.getFile('documentFile'); 但如果我尝试使用request.getFileNames().each{obj -> println("${obj}"); },我只会得到第一个......

3 个答案:

答案 0 :(得分:8)

request.getMultiFileMap().documentFile.each {
    println it.originalFilename
}

答案 1 :(得分:4)

你想这样做

   <g:form action="save" method="post" enctype="multipart/form-data" >  
   <input type='file' name='documentFile.1' />  
   <input type='file' name='documentFile.2' />  
   <input type='file' name='documentFile.3' />  
   </g:form>  

在您的控制器中

def files = []  
params.documentFile.each {  
  files.add(it.value)  
 }  

答案 2 :(得分:2)

你试试这个

request.fileNames.each {
   MultipartFile file = request.getFile(it)
   //File file = request.getFile(it)
   //do what you want
}