2011-12-29 8 views
1

私はgrailsのアップロードコードを実装しようとしています。ファイルは私のコントローラ上で処理されている場合、私はこのエラーを取得:CommonsMultipartFileを処理する方法

ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [POST] /com.jason.score/fileResource/uploads 
Stacktrace follows: 
groovy.lang.MissingMethodException: No signature of method: static org.hsqldb.types.Binary.storeMyFileMethod() is applicable for argument types: (org.springframework.web.multipart.commons.CommonsMultipartFile) values: [[email protected]a17db8] 
    at com.jason.score.FileResourceController$_closure4_closure6.doCall(FileResourceController.groovy:73) 
    at com.jason.score.FileResourceController$_closure4.doCall(FileResourceController.groovy:72) 
    at com.jason.score.FileResourceController$_closure4.doCall(FileResourceController.groovy) 
    at java.lang.Thread.run(Thread.java:662) 

私のコントローラ機能は、次のようになります。私の見解は次のようになります

def uploads = { 
    Collection result = [] 
    Binary binary 
    request.getFileNames().each { 
     binary = Binary.storeMyFileMethod(request.getFile(it)) 
     result << [name: binary.getFileName(), size: binary.getFileSize()] 
    } 
    render result as JSON 
} 

<g:form name="fileupload" url="[action:'uploads',controller:'fileResource']" method="POST" enctype="multipart/form-data"> 
      .... 
      <input type="file" name="files[]" multiple> 

    </g:form> 

誰も説明できます何がうまくいかず、アップロードされた各ファイルをどのように処理することができますか(複数のファイルになる可能性があります)?

+0

「バイナリ」とは何ですか、あなたは 'storeMyFileMethod()'をどこで呼び出すことができましたか?このエラーは、メソッドが存在しないことを示します( 'org.hsqldb.types.Binary')。インターネットはこれをサポートしているようです。 –

+0

また、「各ファイルを処理する」という意味を具体化することはできますか? 「プロセス」とは、ディスクに保存してデータベースに保存するなど、さまざまなことを意味します。 –

+0

ありがとうございます。私はjqueryファイルのアップロードプラグインを使用しようとしています:http://grails.org/plugin/jquery-file-upload。私は、動作するようにサンプルコードを取得しようとしていました。プロセスでは、ファイルをアップロードし、ファイルのサイズ/名前を取得し、JSONレスポンスとして解析します。どんな助けも素晴らしいだろう。それをした – jason

答えて

1

@jason grails jquery pluginをインストールしましたか?はいの場合は、アプリケーションを実行する前に、またはアプリケーションを実行した後でそれを行いましたか?クラスパスでjqueryプラグインを確認し、インポートを整理してください。このエラーメッセージでは、jquery jarがクラスパスにないように見えます。アプリケーションは、ファイルのアップロードに使用する予定のorg.hsqldb.types.Binaryを使用しようとしています。

+0

。ありがとう – jason

関連する問題