2009-12-02 3 views
0

Grails 웹 응용 프로그램에서 작업 중이며 파일을 업로드해야합니다. GAEVFS를 사용하는 Grails App Engine의 파일 업로드

<g:form action="save" method="post" enctype="multipart/form-data">   
<input type="file" id="image" name="image" />         
<input class="save" type="submit" value="Create" /> 
</g:form> 

및 컨트롤러 코드

(나는이 컨트롤러에 있지 것을 알고 있지만이 작동하도록 단지이며,보다 더 나은 설계됩니다) : 나는 형태 (여기 단순화)가

이 시스템을 파일에 저장하려고 아파치 코 몬즈는 FileUpload을 사용하려고하기 때문에 생성, 저장 버튼이 GET 예외를 누르면

A. :

def save = { 
GaeVFS.setRootPath(servletContext.getRealPath("/")); 
FileSystemManager fsManager = GaeVFS.getManager(); 
FileObject tmpFolder = fsManager.resolveFile("gae://WEB-INF/upload_files"); 
if (!tmpFolder.exists()) { 
    tmpFolder.createFolder(); 
} 

//I NEED CODE HERE TO SAVE THE IMAGE IN THE BIGTABLE VIA GAEVFS 
} 

그래서 나는 두 가지 문제가있다.

어떻게 비활성화합니까?

예외 : java.lang.NoClassDefFoundError : java.rmi.server.UID는 제한된 클래스입니다. 자세한 내용은 Google App Engine 개발자 가이드를 참조하십시오. at com.google.appengine.tools.development.agent.runtime.Runtime.reject (Runtime.java:51) at org.apache.commons.fileupload.disk.DiskFileItem (DiskFileItem.java:103) at org org.apache.commons.fileupload.FileUploadBase.parseRequest에서 .apache.commons.fileupload.disk.DiskFileItemFactory.createItem (DiskFileItemFactory.java:196) (FileUploadBase.java:358)

은 B. I 코드 예 필요 gaevfs를 통해 이미지를 저장하는 방법 GaeVfsServlet에서 예제를 보았지만 여전히 내 케이스에서 정확히 어떻게 표시되어야하는지 모르겠다. 모든 종류의 도움을 환영합니다.

GaeVfsServlet의 URL : http://code.google.com/p/gaevfs/source/browse/trunk/src/com/newatlanta/appengine/servlet/GaeVfsServlet.java

+0

대신 Gaelyk을 사용 해본 적이 있습니까? Groovy로 작성된 GAE의 프레임 워크입니다. –

+0

미안하지만 내 프로젝트의 대안이 아닙니다. – Adis

+0

이것은 아직 공개되지 않은 질문입니다. 어떤 제안에 감사드립니다. – Adis

답변

0

내가 바로 그 같은 문제를 가로 질러 와서 내가 Grails의 문제를 해결하기 위해 ajaxuploader라는 플러그인이 사용하고 있습니다 - 업로드됩니다 파일은 InputStream 객체와 나던 등의 컨트롤러로 사용할 수 있습니다 커먼즈 파일 업로드 API를 사용해야합니다.

http://www.grails.org/plugin/ajax-uploader