2012-09-06 9 views
-1

안녕하세요, 업로드 된 파일이 구문 분석되고 해당 정보를 사용하여 데이터베이스에 항목이 만들어지는 응용 프로그램에서 파일 업로드를 구현하려고합니다.commonsMultipartFile trouble

def save = { 

     def file = request.getFile("file"); 
     def filename = file.getOriginalFilename(); 
     def type = filename.split('\\.'); 

     if(!file.isEmpty()){ 
      if(type[1] == "properties"){ 

       redirect(action:"parsePropertyFile", params:params); 
      } 
     } 
} 

def parsePropertyFile = { 

     println "\n" 
     println params.file; 
     println "\n"; 

     def f = params.file; 
     println f; 

     def filename = f.getOriginalFilename(); 
     println filename; 
} 

나는이 출력 f 인쇄 할 때

[email protected]9d32df9 

하지만 fgetOriginalFilename()를 호출하려고 할 때 다음과 같은 오류가 얻을 :

groovy.lang.MissingMethodException: No signature of method: 
java.lang.String.getOriginalFilename() is applicable for argument types:() values: [] 

또한 file를 인쇄 save 함수에서 출력은 다음과 같습니다.

[email protected]9d32df9 

그래서 오류가 발생하는 이유는 무엇입니까?

답변

1

리디렉션하는 대신 다른 기능을 호출 할 수 있습니까? 리디렉션은 필요없는 파일로 http 리디렉션을 실행합니다.

if(type[1] == "properties") { 
    parsePropertyFile(file) 
} 

: 그리고

당신의 parsePropertyFile 행동 당신이 params에서 문자열을 받고있어, File 객체를 받고되지 않습니다에
private def parsePropertyFile(def file) { 
    String filename = file.getOriginalFilename(); 
    ... 
} 
0

. save 작업에서와 마찬가지로 수행해야 할

def f = request.getFile('file') 
println f.getOriginalFilename()