我有一个包含多个文件上传的表单,如此
<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}"); }
,我只会得到第一个......
答案 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
}