-1

こんにちは、アップロードされたファイルが解析され、その情報を使用してデータベースにエントリが作成されるアプリケーションにファイルアップロードを実装しようとしています。

 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、次のように出力されます。

org.springframework.web.multipart.commons.CommonsMultipartFile@29d32df9

getOriginalFilename()しかし、電話をかけようとするとf、次のエラーが発生します。

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

保存機能からも印刷しfileましたが、その出力も次のとおりです。

org.springframework.web.multipart.commons.CommonsMultipartFile@29d32df9

では、なぜエラーが発生するのですか?

4

2 に答える 2

1

リダイレクトする代わりに、別の関数を呼び出すことはできますか? Redirect は、ファイルを param として必要なく http リダイレクトを発行します。

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

その後:

private def parsePropertyFile(def file) {
  String filename = file.getOriginalFilename();
  ...
}
于 2012-09-06T19:58:16.130 に答える
0

アクションでは、parsePropertyFileFile オブジェクトを取得していません。 から String を取得していますparams。あなたの行動と同じように、あなたsaveはする必要があります

def f = request.getFile('file')
println f.getOriginalFilename()
于 2012-09-06T19:59:05.333 に答える