java - grail 中的多个文件上传

标签 java grails

我正在尝试使用请求或 HttpServletRequest 功能复制多个文件。

我已经能够在 Controller 操作中循环遍历所有选定的文件,其中我访问了每个文件的 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运行时错误 - 错误消息是:

Could not find matching constructor for: 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 来进行复制?

-迈克

最佳答案

如果您查看 CommonsMultiPartFile 的文档您会发现问题出在构建文件的方式上。

file.transferTo( new File( userDir, file))

应该是:

file.transferTo( new File(userDir, file.getOriginalFilename()))

您需要访问文件的originalFilename 属性。

关于java - grail 中的多个文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159515/

相关文章:

java - 使用 ArrayList 通过 ParseFile 下载多个图像

java - Google map 未在 Android Studio 中显示(仅 Google 图标可见)

sql-server - GRAILS 3 sql 表达 : no driver

java - 我们如何使用 Selenium 获取网络选项卡信息( header 、响应等)

java - 运行时的通用类​​类型参数详细信息

grails - 记录今天已登录的所有用户的用户名

parsing - grails 3依赖服务gradle

grails - Grails:使用新的多个数据源进行分片吗?

chalice 2.3 : tests not recognized by test-app

java - 如何在 JavaFX 中重新加载应用程序?