如何以编程方式fileRef.download(request)

时间:2013-09-15 08:02:31

标签: flex flash-builder filereference

当用户单击单击的事件处理程序中的按钮时,我可以从我的服务器下载文件,但我必须首先在服务器上使用服务调用创建文件。在我的成功方法中,我可以为用户下载文件。但是,当我这样做时,我收到以下错误

  

错误:错误#2176:某些操作(例如显示弹出窗口的操作)只能在用户交互时调用,例如通过鼠标单击或按下按钮。

我想我理解错误,因为下载弹出窗口只能从用户交互中调用。我该如何解决这个问题呢?我这样做是为了响应用户交互,但在服务器创建文件之前我无法执行下载。

1 个答案:

答案 0 :(得分:1)

功能的原因是出于安全目的。我会说没有办法“绕过这个”;但你可以考虑替代实施。以下是一些:

1)为用户提供界面。第一个按钮点击“准备下载文件”以及何时获得资源;将按钮更改为“立即下载”。这样就可以强制用户进行下载交互。

2)立即启动一个URL到服务器端模板,该模板将生成该文件并将其返回。如果过程相对较快,用户可能不会关心。

3)切换到AIR应用程序,该应用程序在访问本地文件系统时不包含任何限制。