我正在使用Grails Web应用程序,需要上传文件。 我有一个表格(在这里简化):
<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>
并且在Controller代码中(我知道这不应该在控制器中,但这只是为了让它工作而不是设计得更好):
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
}
所以我有两个问题:
一个。当按下保存创建按钮时,因为它尝试使用试图保存到文件系统的Apache Commons FileUpload,所以会出现异常。
如何禁用它?
例外情况是: java.lang.NoClassDefFoundError:java.rmi.server.UID是一个受限制的类。有关详细信息,请参阅Google App Engine开发人员指南。 在com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) 在org.apache.commons.fileupload.disk.DiskFileItem。(DiskFileItem.java:103) 在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 :(得分:0)
我遇到了同样的问题,我正在使用一个名为ajaxuploader的grails插件来解决问题 - 上传的文件作为输入流对象可供控制器使用,并且不必使用commons文件上传API所有