
1 skybr Sep 19, 2014 别想复杂了, 用隐藏的iframe不好么? 权限通过动态页用x-sendfile传递文件让浏览器直接下载, 权限不通过子框架调用parent的Javascript报警告. |
2 qiayue PRO 你用新打开页面去做,判断完成之后下载,然后自动关闭新页面 |
4 l1905 OP @jsonline http://jsbin.com/cuyojojasoju/4/edit 简单的把代码摘出来了 |
6 jsonline Sep 19, 2014 $('.downAttach').click(function(e) { $.get("http://run.jsbin.com/runner?m=activity&c=index&a=add_apply_attach&id=<?php echo $adata['id'];?>" ) .always(function(msg) { location.href = 'http://baidu.com'; alert('done!') }); }); |
8 vincenting Sep 19, 2014 1. ajax 下载文件?不太懂,为何不判断权限,如果没有权限就不给出下载链接,如果有权限才给出下载链接 2. 点击下载链接后再次验证权限,想到有如下做法[根据规模选择]: a. 生成一个一段时间(例如 10s)的 token 放在 redis 里面,然后跳转至下载链接;然后使用 nodejs 代理或者 lua 脚本结合 Nginx 的方式,查看token 是否有效,有效才开始下载。 b. 静态云服务器应该都有类似的功能,生成一个一次性/临时有实效的下载地址,避免暴露真实地址。 |
9 ryd994 Sep 19, 2014 再再简单,也就是ajax生成链接然后隐藏iframe下载。 如果你想ajax直接返回内容,那服务端就会很麻烦,而且效率也低。 先生成链接,下载交给静态服处理,动态这边效率要高得多。 |