2009-12-02 57 views
0

我正在使用Grails Web應用程序並需要上傳文件。 我有一個表格(這裏簡化):使用GAEVFS Grails AppEngine文件上傳

<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> 

,並在控制器代碼(我知道這不應該在控制器但這只是爲了工作,不是將設計更好):

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 
} 

所以,我有兩個問題:

A.當,因爲它試圖使用Apache共享文件上傳,試圖保存到文件系統保存創建按鈕被按下一個get例外。

如何禁用它?

例外是: 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 .apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196) 在org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)

B.我需要的代碼示例通過gaevfs保存圖像 我已經在GaeVfsServlet中看到了一個例子,但我仍然不知道它應該看起來如何。歡迎任何形式的幫助。

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

+0

您是否考慮過使用Gaelyk?這是用Groovy編寫的GAE框架。 – 2009-12-02 22:40:31

+0

對不起,但它不是我的項目的替代品。 – Adis 2009-12-03 08:59:02

+0

這仍然是一個懸而未決的問題。感謝您的任何建議 – Adis 2009-12-08 17:33:24

回答

0

我遇到了同樣的問題,我使用的是Grails的插件叫ajaxuploader來解決這個問題 - 這被上傳的文件提供給您的控制器作爲一個InputStream對象和犯規必須使用公用文件上傳API。

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