как загрузить несколько файлов в Grails - PullRequest
6 голосов
/ 10 декабря 2010

У меня есть форма, которая содержит загрузку нескольких файлов, как эта

<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 ]

8 голосов
/ 03 мая 2012
request.getMultiFileMap().documentFile.each {
    println it.originalFilename
}
4 голосов
/ 10 декабря 2010

Вы хотите сделать это так

   <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 голосов
/ 25 марта 2014

Вы попробуете с этим

request.fileNames.each {
   MultipartFile file = request.getFile(it)
   //File file = request.getFile(it)
   //do what you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...