WEB开发网
开发学院软件开发Java 精通 Grails: 文件上传和 Atom 联合 阅读

精通 Grails: 文件上传和 Atom 联合

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 这是生成控制器时得到的标准 save 闭包,再加上一行定制的代码,精通 Grails: 文件上传和 Atom 联合(4),entryInstance.author 行根据 session.user.id 值从数据库获取 User,并填充 Entry.author 字段,也可以保留 <g:f

这是生成控制器时得到的标准 save 闭包,再加上一行定制的代码。entryInstance.author 行根据 session.user.id 值从数据库获取 User,并填充 Entry.author 字段。

在下一节中,您将定制 save 闭包,以处理文件上传,所以您仍可能在安全性方面犯错误,将 清单 4 中的代码添加到 EntryController.groovy 中。重新启动 Grails,确保可以通过 HTML 表单成功地添加新的 Entry。

文件上传

现在又可以创建 Entry,接下来该添加另一个特性。我希望用户在创建新的 Entry 时可以上传文件。这种文件可以是包含整个博客条目的 HTML,也可以是图像或任何其他文件。为实现该特性,需要涉及到 Entry domain 类、EntryController 和 GSP 视图 — 并且要增加一个新的 TagLib。

首先,看看 grails-app/views/entry/create.gsp。添加一个新字段,用于上传文件,如清单 5 所示:

清单 5. 添加一个用于文件上传的字段

<g:uploadForm action="save" method="post" > 
 <!-- SNIP --> 
 <tr class="prop"> 
  <td valign="top" class="name"> 
   <label for="payload">File:</label> 
  </td> 
  <td valign="top"> 
   <input type="file" id="payload" name="payload"/> 
  </td> 
 </tr> 
</g:uploadForm> 

注意,<g:form> 标记已经被改为 <g:uploadForm>。这样便支持从 HTML 表单上传文件。实际上,也可以保留 <g:form> 标记,并增加一个 enctype="multipart/form-data" 属性。(用于 HTML 表单的默认 enctype 是 application/x-www-form-urlencoded)。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:精通 Grails 文件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接