2011-12-30 21 views
0

ファイルをCommonsMultipartFileとしてアップロードするプラグインを使用しています。アップロードは正常に動作しますが、別のプラグインを使用してファイルヘッダー(mp3ヘッダー)を読み込もうとしていますが、CommonsMultipartFileは使用できません。 CommonsMultipartFileをファイルに変換する方法もあれば、他の方法もあります。私はアップロードされた場所からファイルをコピーしようとしましたが、動作しないようです。CommonsMultipartFileをファイルに変換する

groovy.lang.MissingMethodException:メソッドのシグネチャはありません:私はこれを行うと

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 

} 

が、しかし、私はこのエラーを取得する:ここで私はこれまで持っているものである静的org.jaudiotagger.audio.AudioFileIO .read()は引数の型に適用可能である:(org.springframework.web.multipart.commons.CommonsMultipartFile)値:[org.springframework.web.multipart.commons.CommonsMul[email protected]]

おかげジェイソン

答えて

3

コードをコピーしたMultiPart fiファイルに書き込むが、引き続きAudioFileIOのMultipartファイルを使用した。

それは次のようにする必要があります

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) 
} 
+0

ありがとう!それはそれをした – jason

関連する問題