我正在尝试使用请求或HttpServletRequest功能复制多个文件。
我已经能够在控制器操作中遍历所有选定的文件,我已经访问了每个文件的MultipartFile对象 - 这是动作代码:
request.getFileNames().each{
request.getFiles(it).each
{ file ->
// loop through all files selected
println "name: $file.name Originalfilename: $file.originalFilename contentType: $file.contentType"
file.transferTo( new File( userDir, file))
} // eo for loop
} // eo requect.getFiles().each....
我在transferTo行遇到了一个groovy运行时错误 - 错误信息是:
找不到匹配的构造函数:java.io.File(java.io.File,org.springframework.web.multipart.commons.CommonsMultipartFile)
如果我将transferTo行注释掉打印输出行,则循环会生成有关每个所选文件的正确MultipartFile信息。
请参阅此处选择的两个文件的输出:
name:file [] Originalfilename:for-sale.gif contentType:image / gif
name:file [] Originalfilename:front.gif contentType:image / gif
如何调用transferTo来复制?
-Mike
答案 0 :(得分:0)
如果您查看CommonsMultiPartFile的文档,您会发现问题与构建文件的方式有关。
file.transferTo( new File( userDir, file))
应该是:
file.transferTo( new File(userDir, file.getOriginalFilename()))
您需要访问该文件的originalFilename
属性。