`
rox
  • 浏览: 43651 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论

Grails使用kindeditor,支持附件

 
阅读更多

1、将附件 grails-kindeditor.rar 带目录解压到web-app目录

2、gsp文件代码:

 

<head>
<script charset="utf-8" src="${resource(dir: 'kindeditor', file: 'kindeditor.js')}"></script>
<script>
    KE.show({
        id : 'repost_content',
        resizeMode : 1,
        allowPreviewEmoticons : false,
        allowUpload : true,
        imageUploadJson : '${createLink(action:'uploadimagejson')}',
        attachUploadJson : '${createLink(action:'uploadattachjson')}',
        items : [
            'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline',
            'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
            'insertunorderedlist', '|', 'emoticons', 'image', 'attach', 'flash', 'link']
    });
</script>
</head>
<body>
<g:textArea id="repost_content" name="content" rows="500" cols="400"/>
</body>

 

 

3、action代码:

 

本来是使用对象封装了文件部分属性,这里假定Attach对象有originalName属性,再使用最简单的saveFile,getFile闭包实现

 

    import grails.converters.JSON

    def uploadattachjson = {
        def text = [error: 1, message: '请选择文件。'] as JSON
        if (params.attachFile) {
            def attach = savePic(params.attachFile)
            text =  [error: 0, url: createLink(action: 'downattach', id: attach.id)] as JSON
        }

        render(contentType: 'text/html; charset=UTF-8', text: text)
    }

    def downattach = {
        def attach = getFile(params.id)
        if (attach.exists()) {
            response.setContentType("application/octet-stream")
            response.setHeader("Content-disposition", "attachment;filename=${getFileName(attach.originalFilename)}" )
            response.setContentLength(attach.length() as int)
            response.outputStream.write(attach.bytes)
        } else {
            response.sendError(404)
        }

    }

    def getFileName = {
        String agent = request.getHeader('USER-AGENT')
        if (null != agent && -1 != agent.indexOf('MSIE')) {
            URLEncoder.encode(it, 'UTF8')
        } else {
            MimeUtility.encodeText(it, 'UTF8', 'B')
        }
    }

    def saveFile = {
        def attach = new Attach()
        attach.originalName = it.originalFilename

        it.transferTo(
            new File('c:\attach\'+it.originalFilename)
        )
        attach.save()
    }

    def getFile = {
        def attach = Attach.get(it)
        new File('c:\attach\'+attach.originalName)
    }
 

 

 

 

 

 

分享到:
评论

相关推荐

    grails使用freemarker.rar

    描述中提到“freemarker是一个比较好用的java模板引擎,grails也对它有很好的支持”。这暗示在Grails项目中,开发者可以利用FreeMarker的强大模板功能来分离视图层的逻辑,使得视图与控制器、模型之间的耦合度降低,...

    grails 使用ajax的例子

    本教程将深入探讨如何在Grails应用中使用Ajax,通过几个实际的例子来帮助理解其工作原理和常见用法。 1. **Ajax简介** Ajax(Asynchronous JavaScript and XML)的核心是JavaScript异步通信,它允许网页在不重新...

    Grails Grails Grails

    《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...

    Eclipse下搭建Grails项目

    - 由于Grails项目涉及GSP(Groovy Server Pages)文件,推荐使用包含JSP编辑器的Eclipse JEE版本。如果你对JSP语法熟悉且内存有限,也可选择Classic版本。 - 安装Eclipse 3.4.0 JEE版本或其他支持JSP编辑的最新...

    grails ckeditor 0.4修改支持flv插入

    "grails ckeditor 0.4修改支持flv插入" 这个标题揭示了我们正在处理一个Grails应用,其中整合了CKEditor 0.4版本,并且已经进行了定制以支持FLV(Flash Video)格式的媒体插入。这表明开发者可能在编辑器中扩展了...

    111D:\keke\grails指南\笔记\1111111.txt,grails 初学者,使用说明的。

    从给定的文件信息来看,主要关注点在于Grails框架的初学者使用说明。Grails是一个基于Groovy语言的开源Web应用开发框架,它利用了Java平台的优势,并结合了动态语言的灵活性,使得Web开发变得更为高效、简洁。下面将...

    grails中文使用手册

    《Grails中文使用手册》是为开发者提供的一份详尽指南,旨在帮助用户快速掌握Grails框架的使用方法。Grails是一种基于Groovy语言的开源Web应用框架,它结合了模型-视图-控制器(MVC)架构模式,旨在提高开发效率,...

    Grails使用FCK Editor(附源码,有截图)

    本文将详细介绍如何在Grails应用中使用FCK Editor,同时附带源码和操作截图,以帮助开发者快速理解和实现这一功能。 ### 1. 安装与引入FCK Editor 首先,我们需要下载FCK Editor的源码包,并将其解压到Grails项目...

    grails-用户手册

    这份用户手册将帮助你深入理解和高效使用Grails。 一、Grails基础 Grails的核心理念是“约定优于配置”,这意味着它有一套默认的规则和结构,减少了开发者在项目初始化阶段的工作量。例如,项目文件结构、数据库...

    使用 Grails 快速开发 Web 应用程序

    《使用 Grails 快速开发 Web 应用程序》 Grails,一个基于Groovy动态语言的开源MVC框架,为Web开发提供了高效且简洁的解决方案。自2007年发布以来,Grails以其快速开发能力,降低了Web应用的复杂性,吸引了众多...

    Grails权威指南 Grails权威指南

    3. **GORM(Grails Object-Relational Mapping)**:Grails的内置ORM工具,允许开发者以声明式的方式操作数据库,支持SQL的CRUD操作,简化了数据持久化的过程。GORM支持多种数据库,如MySQL、PostgreSQL等。 4. **...

    grails中文入门简介

    Grails还支持使用Java服务,这允许Java开发者可以更容易地迁移到Grails。 测试是确保软件质量的关键环节,Grails提供了一套完整的测试框架,包括单元测试、集成测试和功能测试。这些测试可以针对不同的层次和需求来...

    使用Grails快速开发Web应用

    - **创建应用**:使用`grails create-app Contact`命令可快速生成名为“Contact”的应用框架,该命令自动生成了标准的项目目录结构,包括但不限于`grails-app`下的`conf`、`controller`、`domain`、`i18n`、`...

    eclipse开发grails插件

    与此同时,Eclipse作为一款强大的Java集成开发环境(IDE),也提供了丰富的插件支持,帮助开发者更高效地进行Grails项目的开发。本篇将详细讲解如何使用Eclipse开发Grails插件,以及涉及的相关知识点。 首先,让...

    Grails 和 jQuery开发实例

    在本文中,我们将深入探讨如何使用Groovy on Grails(简称Grails)和jQuery来构建一个功能丰富的Web日历应用程序。Grails是一个基于Java平台的全栈式框架,它简化了Web应用的开发过程,而jQuery则是一款强大的...

    grails 中文第二版

    - 使用`grails create-app`命令快速创建一个新的Grails项目。 - 自动生成项目的基本结构,包括目录结构和必要的配置文件。 **Hello World示例** - 创建一个简单的控制器,实现基本的路由逻辑。 - 在视图中展示...

    eclipse插件grails(groovy)

    Eclipse插件提供了对Groovy和Grails的调试支持,你可以设置断点,查看变量值,甚至进行单步调试Grails脚本。在运行或调试Grails应用时,可以通过Eclipse的"Run Configurations"或"Debug Configurations"来配置启动...

Global site tag (gtag.js) - Google Analytics