`
fengzhizi715
  • 浏览: 161654 次
  • 性别: Icon_minigender_1
  • 来自: 上海 苏州
社区版块
存档分类
最新评论

grails中实现文件下载并统计文件下载次数

阅读更多
controller的代码如下:
该类负责下载文件以及统计文件的下载次数
class DownloadController {

    def downloadFile = {
        def id = params.id
        response.setHeader("Content-disposition", "attachment; filename=TheSalesDemo.rar")
        response.contentType = "application/x-rarx-rar-compressed"
        def filepath = "TheSalesDemo.rar"
        def out = response.outputStream
        def inputStream = new FileInputStream(filepath)
        byte[] buffer = new byte[1024]
        int i = -1
        while ((i = inputStream.read(buffer)) != -1) {
            out.write(buffer, 0, i)
        }
        def file = DownloadFile.findById(id)
        file.setCount(file.count+1)
        file.save()
        out.flush()
        out.close()
        inputStream.close()
    }

}



首页调用的gsp代码 主要是调用download控制器的downloadFile这个action
<p> 演示程序下载地址:<g:link controller="download" action="downloadFile" id="1"><img src="${createLinkTo(dir:'images',file:'download.jpg')}" alt="" width="71" height="30" /></g:link></p>
<p> 演示程序下载次数:${count}</p>


下面的代码主要用于首页的action中,显示统计次数
 def count = downloadFile.getCount()
[[count:count]


这样既实现了文件下载,又实现了统计文件下载次数
分享到:
评论
2 楼 fengzhizi715 2009-11-15  
helian 写道
不错。修改count的代码放到filter会不会有问题?

class MyFilters {
   def filters = {
       downloadCount(controller:'download', action:'downloadFile') {
           after = {
              def file = DownloadFile.findById(params.id)  
              file.setCount(file.count+1)  
              file.save()  
           }
       }
   }
}


这个 我还没试过 有机会试一下 :)
1 楼 helian 2009-11-09  
不错。修改count的代码放到filter会不会有问题?

class MyFilters {
   def filters = {
       downloadCount(controller:'download', action:'downloadFile') {
           after = {
              def file = DownloadFile.findById(params.id)  
              file.setCount(file.count+1)  
              file.save()  
           }
       }
   }
}

相关推荐

    grails中的上传,下载

    在Grails框架中,文件的上传与下载是常见的功能需求,尤其在开发涉及大量文档、图片或媒体文件处理的应用程序时。以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 ...

    Grails1.1中文文档

    《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...

    Grails中文参考手册

    Views 是 Grails 应用程序中的用户界面部分,通常使用 Groovy Server Pages (GSP) 文件编写。GSP 结合了 HTML、CSS 和 JavaScript 以及 Groovy 语法,允许动态生成页面内容。 **Services** Services 是可重用的...

    Grails结合uploadify上传文件的简单代码

    在本文中,我们将深入探讨如何在Grails框架中结合uploadify插件实现文件上传功能。Grails是一款基于Groovy语言的、高效的Web应用开发框架,它简化了Java平台上的开发流程。uploadify则是一个JavaScript库,它允许...

    grails 文档

    《Grails 框架深度探索》 Grails 是一个基于 Groovy 语言的开源Web应用框架,它构建于Spring框架之上,旨在提高开发效率,提供简洁...在实际工作中,结合Grails的文档和社区资源,可以进一步提升开发效率和应用质量。

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认样式、语言设置等。 2. 使用方法:在GSP页面中引入FCKEditor,用户可以在网页上直接编辑富文本,如HTML代码,支持图片上传、...

    grails中文文档

    提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip" 文件,应该包含了 Grails 1.1 版本的中文文档和可能的示例代码。这些文档可以帮助你深入了解 Grails 的各项特性和使用方法,特别是对于初学者来说,...

    grails中文参考手册

    - **Hello World示例**:在新创建的应用中,你可以通过创建一个简单的控制器和视图来实现经典的“Hello, World!”程序,体验Grails的快速开发能力。 3. **使用IDE** Grails支持多种集成开发环境(IDE),如...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    grails 3.3.2 资源下载

    下载的"grails-3.3.2"压缩包文件包含了完整的Grails 3.3.2框架源码、文档、库和其他必要的组件。解压后,开发者可以使用这个版本开始构建自己的Grails应用。通过学习和掌握Grails 3.3.2的知识点,开发者将能够高效地...

    grails中文入门简介

    Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发...通过这份文档,开发者可以系统地学习Grails框架,并在实际开发中快速应用所学知识。

    grails实现分页技术

    Grails提供了一些内置的支持,但如果你需要在自定义的控制器和视图中实现分页,那么就需要遵循特定的步骤。以下是一个详细的过程,帮助初学者理解如何在Grails中实现分页。 首先,让我们从控制器开始。在Grails中,...

    Grails1.1中文文档.rar

    通过阅读《Grails1.1中文文档.chm》和解压后的《Grails.rar》文件,你可以获得详细的框架指南、API文档和示例代码,从而加速学习进程。对于初学者来说,这份文档将是你理解Grails 1.1及其开发流程的重要参考资料。

    grails 中文第二版

    - Grails版本信息可以在项目的`BuildConfig.groovy`文件中找到。 **文档引擎** - 提供了文档生成工具,帮助开发者快速生成API文档。 **依赖解析** - Grails使用Ivy作为其依赖管理系统。 - 支持配置依赖关系,包括...

    Grails Grails Grails

    Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式,允许开发者快速构建...

    grails3.3下载

    这个文件包含了 Grails 3.3 的核心组件及必要的文档。请注意,为了确保软件来源的安全性和可靠性,建议从官方网站或官方认可的渠道下载 Grails。 #### 四、安装 Grails 3.3 1. **环境准备**: - **Java 安装**:...

Global site tag (gtag.js) - Google Analytics