如何使用Grails重定向文件下载?

时间:2020-03-06 15:05:18  来源:igfitidea点击:

我目前正在编写一个允许人们下载Excel和文本文件的网站。当他们单击时,是否可以重定向到其他页面,以便我们运行JavaScript并进行分析(即保持下载计数)?当前,没有什么阻止用户简单地右键单击并保存。

编辑:

更具体地说,单击文件链接或者双击将其重定向到临时下载页面进行分析,然后下载文件,将是不错的选择。

解决方案

我不确定我们在这里要问的是什么,是要弄清楚如何在控制器中重定向,还是要覆盖浏览器中的右键单击行为?

要在控制器中重定向,我们可以执行此处记录的类似操作。

redirect(controller:"book",action:"list")

如果我们尝试更改按钮或者链接的行为,则该行为是客户端的,并且很可能需要一些Javascript。

如果我们澄清,我也许可以提供更多帮助。

我开始描述我们如何在Grails中执行此操作,但随后记住大多数分析服务(Google,Omniture等)将允许我们使用onclick事件来跟踪下载的文件。如果我们要执行一些基于javascript的自定义跟踪,则可以执行相同的操作。在文档开始下载之前,将调用onclick。例如:

<a href="/path-to-download-file" onclick="record_download('filename')">myfile.txt</a>

更具体而言,对于Google Analytics(分析),以下是一些可自动执行此操作的JavaScript:
http://www.goodwebpractices.com/downloads/gatag.js