【问题标题】:convert CommonsMultipartFile to file将 CommonsMultipartFile 转换为文件
【发布时间】:2011-12-30 06:37:19
【问题描述】:

我正在使用将文件作为 CommonsMultipartFile 上传的插件。上传工作正常,但我正在尝试使用另一个插件来读取文件头(mp3 头),但它不会占用 CommonsMultipartFile,只有常规文件。有没有办法将 CommonsMultipartFile 转换为文件或进行其他一些工作。我尝试从上传文件的位置复制文件,但它似乎不起作用。这是我到目前为止所拥有的:

if (request instanceof MultipartHttpServletRequest) {

    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
        CommonsMultipartFile file =  (CommonsMultipartFile)multiRequest.getFile("files");   

            moveFile(file)
   }

   private moveFile(CommonsMultipartFile file){
    def userId = getUserId()
    def userGuid = SecUser.get(userId.id).uid
    def webRootDir = servletContext.getRealPath("/")


    def userDir = new File(webRootDir, "/myUsers/${userGuid}/music")
    userDir.mkdirs()
    file.transferTo( new File( userDir,file.originalFilename))      
    def myFile = new File( "/myUsers/${userGuid}/music/" +     file.originalFilename)


    AudioFile audioFile = AudioFileIO.read(file);

             //AudioFile is expecting a file, not a CommonsMultipartFile 

}

但是,当我这样做时,我得到了这个错误:

groovy.lang.MissingMethodException:没有方法签名:静态 org.jaudiotagger.audio.AudioFileIO.read() 适用于参数类型:(org.springframework.web.multipart.commons.CommonsMultipartFile) 值:[org. springframework.web.multipart.commons.CommonsMultipartFile@10a531]

谢谢 杰森

【问题讨论】:

    标签: grails grails-controller


    【解决方案1】:

    您的代码将 MultiPart 文件复制到 File,但仍将 Multipart 文件用于 AudioFileIO。

    一定是这样的:

    private moveFile(CommonsMultipartFile file){
        def userId = getUserId()
        def userGuid = SecUser.get(userId.id).uid
        def webRootDir = servletContext.getRealPath("/")
    
        def userDir = new File(webRootDir, "/myUsers/${userGuid}/music")
        userDir.mkdirs()
        File myFile = new File( userDir,file.originalFilename)
        file.transferTo(myFile)      
    
        //
        // !!!!!! you have to pass myFile there
        //
        AudioFile audioFile = AudioFileIO.read(myFile) 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 2015-02-17
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多