Playframework 在后台下载二进制文件时渲染/重定向到新的html页面?

Playframework 在后台下载二进制文件时渲染/重定向到新的html页面?,playframework,Playframework,我们的网站最近在Play框架中被重写。我们为用户提供文件下载,并使用renderBinary()正确下载文件 现在,我想在二进制文件在后台下载时向用户显示/呈现一个新的html页面。有点像这样: [亲爱的网站用户:单击此处下载此文件:bigfile.zip] 用户单击后,bigfile.zip开始下载。然后我想向用户显示一个新页面: [亲爱的网站用户:感谢下载bigfile。这里是一些附加信息。] 对renderBinary()的调用永远不会返回,因此我不能在之后调用类似Application.

我们的网站最近在Play框架中被重写。我们为用户提供文件下载,并使用renderBinary()正确下载文件

现在,我想在二进制文件在后台下载时向用户显示/呈现一个新的html页面。有点像这样:

[亲爱的网站用户:单击此处下载此文件:bigfile.zip]

用户单击后,bigfile.zip开始下载。然后我想向用户显示一个新页面:

[亲爱的网站用户:感谢下载bigfile。这里是一些附加信息。]

对renderBinary()的调用永远不会返回,因此我不能在之后调用类似Application.showMyPage()的东西。类似地,呈现我的html页面[Application.showMyPage()]的调用也不会返回,因此之后无法调用renderBinary()


也许javascript onclick是唯一的方法,但我想知道是否有一种干净的方法可以做到这一点。

您要求的是客户端同时执行两个请求,这不是HTTP的工作方式。最简单的方法,也是我所看到的下载站点的工作方式,如下所示

  • 显示带有单击此处下载链接的页面
  • 单击下载链接,显示您的感谢页面,其中包含一段javascript,通过使用
    renderBinary
    方法调用您的操作,自动开始下载文件

  • 这是人们普遍期待的用户体验。

    当我们在后台上传文件时,我们有一个小的“隐藏”iframe,其中有一个表单,用户选择文件并点击“上传”。然后,文件被嵌入到背景中,或者更准确地说,嵌入到iframe中。上传完成后,服务器返回一些javascript,在主窗口的父窗口中调用js函数。调用此主窗口函数时,主窗口可以将其自身重定向到新的完成页面。希望有帮助

    你好,抱歉这么晚才问。如果我在锚标记的onclick中调用该操作,我会在浏览器中得到一个提供给RegExp构造函数foo的
    无效标志。我使用的是1.2.4。知道为什么会发生这种情况吗?以前没有看到过这个错误,但我怀疑您使用的jsAction不正确??